home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 20 / Cream of the Crop 20 (Terry Blount) (1996).iso / os2 / pine394.zip / doc / tech-notes.txt < prev   
Text File  |  1996-06-13  |  185KB  |  3,631 lines

  1.  
  2.                              Pine Technical Notes
  3.                                        
  4.    Version 3.94, June 1996
  5.    
  6.    Pine and Pico are trademarks of the University of Washington.
  7.    Copyright ⌐ 1989-1996 by the University of Washington. For information
  8.    on copying, modifying or distributing documents from the Pine
  9.    Information Center, see the Legal Notices.
  10.    
  11. Table of Contents
  12.  
  13.   Introduction
  14.   
  15.      * Design Goals
  16.      * Pine Components
  17.        
  18.   Background Details
  19.   
  20.      * Domain Names
  21.      * RFC 822 Compliance
  22.      * SMTP and Sendmail
  23.      * Internet Message Access Protocol (IMAP)
  24.      * Multipurpose Internet Mail Extensions (MIME)
  25.      * Folder Collections
  26.        
  27.   Building and Installation
  28.   
  29.      * UNIX Pine Compile-time Options
  30.      * Pico Compile-time Options
  31.      * IMAPd Compile-time Options
  32.      * Building the Pine Programs
  33.      * Installing Pine and Pico on UNIX Platforms
  34.      * Installing PC-Pine
  35.      * Installing IMAPd
  36.      * Support Files and Environment Variables: UNIX Pine
  37.      * Support Files and Environment Variables: PC-Pine
  38.        
  39.   Command Line Arguments
  40.   
  41.      * Pine
  42.      * Pico
  43.      * Pilot
  44.        
  45.   Configuration and Preferences
  46.   
  47.      * Pine Configuration
  48.      * General Configuration Variables
  49.      * Retired Variables
  50.        
  51.     Configuration Notes
  52.     
  53.      * Pine in Function Key Mode
  54.      * Domain Settings
  55.      * Syntax for Collections
  56.      * Syntax for Remote Folders
  57.      * Sorting a Folder
  58.      * Alternate Editor
  59.      * Signatures and Signature Placement
  60.      * Feature List Variable
  61.      * Additional Notes on PC-Pine
  62.        
  63.   Behind the Scenes
  64.   
  65.      * Address Books
  66.      * Checkpointing
  67.      * Debug Files
  68.      * Filters
  69.      * Folder Formats and Name Extensions
  70.      * Folder Locking
  71.      * INBOX and Special Folders
  72.      * Internal Help Files
  73.      * International Character Sets
  74.      * Interrupted and Postponed Messages
  75.      * Message Status
  76.      * MIME: Reading a Message
  77.      * MIME: Sending a Message
  78.      * New Mail Notification
  79.      * NFS
  80.      * Printers and Printing
  81.      * Save and Export
  82.      * Sent Mail
  83.      * Spell Checker
  84.      * Terminal Emulation and Key Mapping
  85.        
  86.   Notes for Porting and Modification
  87.   
  88.      * Porting Pine to Other Platforms
  89.      * Test Checklist
  90.  
  91.                                  Introduction
  92.                                        
  93. Design Goals
  94.  
  95.    Throughout Pine development, we have had to strike a balance between
  96.    the need to include features which advanced users require and the need
  97.    to keep things simple for beginning users. To strike this balance, we
  98.    have tried to adhere to these design principles:
  99.    
  100.    
  101.           - The underlying model presented to the user has to be simple
  102.           and clear. Underlying system operation is hidden as much as
  103.           possible.
  104.    
  105.           - It's better to have a few easily understood commands that can
  106.           be repeated than to have some more sophisticated command that
  107.           will do the job all at once.
  108.    
  109.           - Whenever the user has to select a command, file name,
  110.           address, etc., the user should be given (or can get) a menu
  111.           from which to make the selection. Menus need to be complete,
  112.           small, organized and well thought out.
  113.    
  114.           - Pine must provide immediate feedback for the user with each
  115.           operation.
  116.    
  117.           - Pine must be very tolerant of user errors. Any time a user is
  118.           about to perform an irreversible act (send a message, expunge
  119.           messages from a folder), Pine should ask for confirmation.
  120.    
  121.           - Users should be able to learn by exploration without fear of
  122.           doing anything wrong. This is an important feature so the user
  123.           can get started quickly without reading any manuals and so
  124.           fewer manuals are required.
  125.    
  126.           - The core set of Pine functions should be kept to a minimum so
  127.           new users don't feel "lost" in seemingly extraneous commands
  128.           and concepts.
  129.           
  130.    Just as there were goals relating to the look and feel of Pine, there
  131.    were equally important goals having to do with Pine's structure-the
  132.    things that users never see but still rely on every time they use
  133.    Pine. While Pine can be used as a stand-alone mail user agent, one of
  134.    its strongest assets is its use of the Internet Message Access
  135.    Protocol (IMAP) for accessing remote email folders. In addition, Pine
  136.    was one of the first programs to support the Multipurpose Internet
  137.    Mail Extensions (MIME) specification. With MIME, Pine users can
  138.    reliably send any binary file to any other person on the Internet who
  139.    uses a MIME compliant email program.
  140.    
  141.    The decision to use IMAP and MIME reflect the importance of
  142.    interoperability, standardization and robustness in Pine. As you work
  143.    with Pine more, you will see other features which reflect the same
  144.    values. For example, Pine enforces strict compliance with RFC 822,
  145.    implements a strong mail folder locking mechanism and verifies a
  146.    process before overwriting any files (e.g. addressbook, expunging
  147.    messages).
  148.    
  149. Pine Components
  150.  
  151.    If you have picked up the Pine distribution, then you already know
  152.    that Pine comes in a few different pieces. They are:
  153.    
  154.    Pine
  155.           This main code from which the Pine program is compiled.
  156.    Pico
  157.           Pico is the name for the Pine composer. The Pico code is used
  158.           in two ways: (1) it is compiled on its own to be a stand-alone
  159.           editor or (2) compiled as a library for Pine to support
  160.           composition of messages within Pine. Pico is Pine's internal
  161.           editor invoked when users need to fill in header lines or type
  162.           the text of an email message.
  163.    Imap
  164.           An API for IMAP. Includes the C-Client library, which is
  165.           compiled into Pine, and the IMAP server IMAPd. C-Client
  166.           implements the IMAP protocol and also negotiates all access
  167.           between Pine and the mail folders it operates on. The C-Client
  168.           routines are used for email folder parsing and interpreting
  169.           MIME messages. IMAPd is a separate server that handles IMAP
  170.           connections from any IMAP-compliant email program. When Pine
  171.           accesses a remote mailbox, the Pine program is the IMAP client
  172.           and the IMAPd program is the IMAP server.
  173.           
  174.      _________________________________________________________________
  175.                                       
  176.       
  177.  
  178.                               Background Details
  179.                                        
  180. Domain Names
  181.  
  182.    
  183.    Domain names are used to uniquely name each host on the Internet. A
  184.    domain name has a number of parts separated by periods. Each label
  185.    represents a level in the hierarchy. An example of a name is:
  186.    
  187.      olive.cac.washington.edu
  188.      
  189.    In this domain name the top-level label is edu, indicating it is at an
  190.    educational institution, the second-level label is washington,
  191.    indicating the University of Washington. cac is a specific department
  192.    within the University of Washington, and olive is the host name. The
  193.    top-level names are assigned by Internet organizations, and other
  194.    names are assigned at the appropriate level. The Domain Name Service,
  195.    DNS, is the distributed database used to look up these names.
  196.    
  197.    Pine relies on domain names in multiple places. A domain name is
  198.    embedded into the message-id line generated for each piece of email. A
  199.    domain name is needed to contact an IMAP server to get access to
  200.    remote INBOXes and folders. Most importantly, domain names are needed
  201.    to construct the From: line of your outgoing messages so that people
  202.    on the Internet will be able to get email back to you.
  203.    
  204.    On UNIX systems, you can set the domain via the user-domain variable
  205.    in the Pine configuration file, or rely on the file /etc/hosts which
  206.    usually sets the name of the local host. While Pine can often deliver
  207.    email without the domain name being properly configured, it is best to
  208.    have this set right. Problems can usually be solved by adjusting the
  209.    system's entry in the /etc/hosts file. The fully-qualified name should
  210.    be listed before any abbreviations.
  211.    
  212.      128.95.112.99 olive.cac.washington.edu olive
  213.      
  214.    is preferred over
  215.    
  216.      128.95.112.99 olive olive.cac.washington.edu
  217.      
  218.    On PCs, the task of configuring the domain name is a bit different.
  219.    Often times, PCs do not have domain names-they have IP addresses. IP
  220.    addresses are the numbers which uniquely identify a computer on the
  221.    network. The way you configure your IP address depends on the
  222.    networking software which you use on the PC. You can refer to the
  223.    documentation which came with your networking software or see the PC
  224.    specific installation notes for help configuring the IP address with
  225.    your network software.
  226.    
  227.    With PCs, it is vital that users set the variable user-domain in the
  228.    Pine configuration file (PINERC).
  229.    
  230.    Details on configuring Pine with correct domain names can be found in
  231.    the Domain Settings section of this document.
  232.    
  233.      _________________________________________________________________
  234.                                       
  235. RFC 822 Compliance
  236.  
  237.    Pine tries to adhere to RFC 822 a little more strongly than some other
  238.    mailers and uses the "full name <address>" format rather than the
  239.    older "address (full name)" format. The intent of the standard is that
  240.    parentheses should only be for comments. Pine displays and generates
  241.    the newer format, but will parse the old format and attempt to turn it
  242.    into the new one.
  243.    
  244.    As far as outgoing email is concerned, Pine fully-qualifies addresses
  245.    whenever possible. They are even displayed in fully-qualified form on
  246.    the terminal as the user composes a message. This makes addresses more
  247.    clear and gives a hint to the user that the network extends beyond the
  248.    local organization. Pine implements fully-qualified domain names by
  249.    tacking on the local domain to all unqualified addresses which a user
  250.    types in. Any address which does not contain a "@" is considered
  251.    unqualified.
  252.    
  253.    The newer format for addresses allow for spaces and special characters
  254.    in the full name of an address. For this reason, commas are required
  255.    to separate addresses. If any special characters as defined in RFC 822
  256.    appear in the full name, quotes are required around the address. Pine
  257.    will insert the quotes automatically. The common cases where this
  258.    happens are with periods after initials and parentheses.
  259.    
  260.    Because Pine fully complies with RFC 822, it is sometimes difficult to
  261.    use non-Internet address formats such as UUCP's host!user or DECNet's
  262.    USER::HOST with Pine. People who run Pine on these systems have made
  263.    local modifications to Pine or to the mail transport agent (e.g.
  264.    sendmail) to make things work for them.
  265.    
  266.    Pine expects dates to be in the standard RFC 822 format which is
  267.    something like:
  268.  
  269.         [www, ] dd mmm yy hh:mm[:ss] [timezone]
  270.  
  271.    It will attempt to parse dates that are not in this format. When an
  272.    unparsable date is encountered it is displayed as xxx xx when shown in
  273.    the FOLDER INDEX screen.
  274.    
  275.      _________________________________________________________________
  276.                                       
  277. SMTP and Sendmail
  278.  
  279.    Pine is a user agent not a message transfer agent. In plain English,
  280.    that means Pine does not know how to interact with other computers on
  281.    the Internet to deliver or receive email. What Pine does know how to
  282.    do is help users read, organize and create email. The "dirty work" of
  283.    delivering and accepting email is handled by other programs.
  284.    
  285.    All outgoing email is delivered to a mail transfer program or to an
  286.    SMTP server. The most common mail transfer program is sendmail.
  287.    
  288.    Pine 3.91 and earlier:
  289.           When Pine on a UNIX computer uses the local sendmail, it first
  290.           writes the message to a temporary file in /tmp. Then Pine runs
  291.           a shell in the background that runs sendmail on the temporary
  292.           file and then removes it. This is done with a shell in the
  293.           background so the user doesn't have to wait for sendmail to
  294.           finish. By default, sendmail is invoked with the -t flag to
  295.           cause it to read and parse the header to determine the
  296.           recipients; the -oem flag to cause errors to be mailed back;
  297.           and the -oi flag to ignore dots in incoming messages. Systems
  298.           administrators can choose to configure Pine to use a different
  299.           mail transfer program or even sendmail with different flags.
  300.           See the section on UNIX Pine Compile-time Options for more
  301.           details on this.
  302.           
  303.           Pine can also operate as an SMTP client. SMTP stands for Simple
  304.           Mail Transfer Protocol; it specifies the rules by which
  305.           computers on the Internet pass email to one another. In this
  306.           case, Pine passes outgoing email messages to a designated SMTP
  307.           server instead of to a mail transfer program on the local
  308.           machine. A program on the server then takes care of delivering
  309.           the message. To make Pine operate as an SMTP client, the
  310.           smtp-server variable must be set to the IP address or host name
  311.           of the SMTP server within your organization. This variable
  312.           accepts a comma separated list of servers, so you can specify
  313.           multiple SMTP servers. PC-Pine only runs as an SMTP client.
  314.           
  315.    Pine 3.92 and later:
  316.           The selection of which MTA to use depends on the settings of
  317.           sendmail-path, smtp-server, and compile-time options. The first
  318.           MTA specified in the following list is used:
  319.           
  320.          1. sendmail-path in /usr/local/lib/pine.conf.fixed
  321.          2. smtp-server in /usr/local/pine.conf.fixed
  322.          3. sendmail-path specified on the command line.
  323.          4. smtp-server specified on the command line.
  324.          5. sendmail-path in the user's .pinerc file.
  325.          6. smtp-server in the user's .pinerc file.
  326.          7. sendmail-path in /usr/local/lib/pine.conf
  327.          8. smtp-server in /usr/local/pine.conf
  328.          9. DF_SENDMAIL_PATH defined at compile time.
  329.         10. SENDMAIL and SENDMAILFLAGS defined at compile time.
  330.             
  331.           If the sendmail-path form is used, a child process is forked,
  332.           and the specified command is executed with the message passed
  333.           on standard input. Standard output is then passed back and
  334.           displayed for the user. NOTE: The program MUST read the message
  335.           to be posted on standard input, AND operate in the style of
  336.           sendmail's "-t" option. 
  337.           
  338.           If an smtp-server is specified, a connection to the server is
  339.           opened. If the message contains 8-bit text, ESMTP 8BITMIME
  340.           negotiation is attempted. The message is then sent using SMTP
  341.           commands.
  342.           
  343.           If none of the above are set, the default sendmail program is
  344.           invoked with the "-bs -odb -oem" flags, ESMTP negotiation is
  345.           attempted, and the message is sent.
  346.           
  347.      _________________________________________________________________
  348.                                       
  349. Internet Message Access Protocol (IMAP)
  350.  
  351.    IMAP is a remote access protocol for message stores. Pine uses IMAP to
  352.    get at messages and folders which reside on remote machines. With
  353.    IMAP, all messages are kept on the server. An IMAP client (such as
  354.    Pine) can request specific messages, headers, message structures, etc.
  355.    The client can also issue commands which delete messages from folders
  356.    on the server. IMAP's closest kin is POP, the Post Office Protocol,
  357.    which works by transferring an entire mailbox to the client where all
  358.    the mail is kept. For a comparison of IMAP and POP, see the paper
  359.    "Comparing Two Approaches to Remote Mailbox Access: IMAP vs. POP" by
  360.    Terry Gray. A more detailed exploration of message access may be found
  361.    in the paper " Message Access Paradigms and Protocols." These papers
  362.    may be found in the /mail directory of the anonymous FTP server at
  363.    ftp.cac.washington.edu.
  364.    
  365.    IMAP Features:
  366.      * Allows access to mail folders from more than one client computer.
  367.      * Works well over low-bandwidth lines because information is sent in
  368.        small pieces as needed by the user. For example, only header
  369.        information is sent to build index lists, and if someone sends a
  370.        2MB audio file via MIME, you can choose when (or if) you want to
  371.        get that part of the message.
  372.      * Email can be delivered and stored on a well-maintained and
  373.        reliable server which is "always-up".
  374.      * Folders can be accessed and manipulated from anywhere on the
  375.        Internet.
  376.      * Users can get to messages stored in different folders within the
  377.        same Pine session.
  378.      * Allows use of IMAP server for searching and parsing.
  379.      * The latest revision of IMAP (IMAP4) also provides for disconnected
  380.        operation, including resynchronization of message state between
  381.        mail servers and message caches on clients. Pine does not yet
  382.        support this capability, however.
  383.        
  384.    IMAP2 is defined in RFC 1176. IMAP4, the revision to IMAP2, is
  385.    described in RFC 1730. Further information about IMAP may be obtained
  386.    from the University of Washington's IMAP Information Center on the
  387.    World Wide Web.
  388.    
  389.    Pine 3.94 is an IMAP2bis client and does not yet implement all of the
  390.    IMAP4 extensions. (IMAP2bis was an interim specification superseded by
  391.    IMAP4.) Pine takes advantage of the extensions defined in IMAP2bis for
  392.    efficient and selective access to MIME body parts. We expect the next
  393.    major release of Pine (probably version 4.0) to be fully compatible
  394.    with the IMAP4 specification.
  395.    
  396.      _________________________________________________________________
  397.                                       
  398. Multipurpose Internet Mail Extensions (MIME)
  399.  
  400.    MIME is a way of encoding a multipart message structure into a
  401.    standard Internet email message. The parts may be nested and may be of
  402.    seven different types: Text, Audio, Image, Video, Message, Application
  403.    and Multipart (nested). The MIME specification allows email programs
  404.    such as Pine to reliably and simply exchange binary data (images,
  405.    spreadsheets, etc.) MIME includes support for international character
  406.    sets, tagging each part of a message with the character set it is
  407.    written in, and providing 7-bit encoding of 8-bit character sets. It
  408.    also provides a simple rich text format for marking text as bold,
  409.    underlined, and so on. There is a mechanism for splitting messages
  410.    into multiple parts and reassembling them at the receiving end.
  411.    
  412.    The MIME standard was officially published in June of 1992 as RFC 1341
  413.    and subsequently revised in RFC 1521 when it became a full Internet
  414.    Standard. Pine 3.0 was one of the first email programs to Implement
  415.    MIME. Now, there are dozens of commercial and freely available
  416.    MIME-capable email programs. In addition, MIME is being added to
  417.    newsreaders so MIME messages can be posted and read in USENET
  418.    newsgroups.
  419.    
  420.    The MIME standard also includes support for non-ASCII text in message
  421.    headers through the extensions described in RFC 1342 and subsequently
  422.    revised in RFC 1522. Support for RFC 1522 was added in Pine 3.92.
  423.    
  424.    An actual MIME message looks something like this:
  425. Date: Tue, 12 Mar 1996 15:39:35 -0800 (PST)
  426. From: David L Miller <dlm@cac.washington.edu>
  427. To: David L Miller <dlm@cac.washington.edu>
  428. Subject: =?iso-8859-1?Q?Test_MIME_message_with_RFC-1522_headers_=28=E1?=    =?i
  429. so-8859-1?Q?=E2=E3=29?=
  430. Message-Id: <Pine.ULT.3.92.960312150851.21583I-101000@shiva2.cac.washington.edu
  431. >
  432. Mime-Version: 1.0
  433. Content-Type: MULTIPART/MIXED; BOUNDARY="0-1737669234-826673975=:21583"
  434. Content-Id: <Pine.ULT.3.92.960312153928.21583O@shiva2.cac.washington.edu>
  435.  
  436.   This message is in MIME format.  The first part should be readable text,
  437.   while the remaining parts are likely unreadable without MIME-aware tools.
  438.   Send mail to mime@docserver.cac.washington.edu for more info.
  439.  
  440. --0-1737669234-826673975=:21583
  441. Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
  442. Content-ID: <Pine.ULT.3.92.960312153104.21583L@shiva2.cac.washington.edu>
  443.  
  444. The text of the message would go here. It is readable if
  445. one doesn't mind wading around a little bit of the MIME
  446. formatting. After this is a binary file in base 64
  447. encoding.
  448.  
  449. |\ |  |\/|  David L. Miller    dlm@cac.washington.edu  (206) 685-6240
  450. |/ |_ |  |  Software Engineer, Pine Development Team   (206) 685-4045 (FAX)
  451. University of Washington, Networks & Distributed Computing, JE-20
  452. 4545 15th Ave NE, Seattle WA 98105, USA
  453.  
  454. --0-1737669234-826673975=:21583
  455. Content-Type: APPLICATION/ZIP; NAME="test.zip"
  456. Content-Transfer-Encoding: BASE64
  457. Content-ID: <Pine.ULT.3.92.960312153638.21583N@shiva2.cac.washington.edu>
  458. Content-Description: Test Attachment
  459.  
  460. UEsDBBQAAAAIAGh8bCBbZKT4ygIAAHgFAAAEAAAAdGVzdIVUX2vbMBB/16c4
  461. 9rSBNyjsYX1UHSUROLInycv2qNhKI5ZYxlLa5dvvpDRLw6CFgJF09/t3Rxo3
  462. WDBDD43rPJjJQpxMbw9m+h3AbyHuLLSDe7JTcPGUbtYm7NzwGP3wBYQnnT8c
  463. 7NQ5s4djsC8t4QbmYE6wsfjpLTy7uPPHCOPk/ATPk4vRDmS008GF4PzwPich
  464. zY3m4LfxOQlPNy4GcEO3P/a2h2j/xGyp9ONpco+7CHf33+4/393ff4XNibzL
  465. c1UVfXJXQIdIBRx877b4TYy9C3Fym2NEyzsX/pNDet8dD3aIJiagLbo2wwnG
  466. 4zT6cK66ZLK1NhH9J4tcZQEy7OxkNyd4nMwQbV9glP7JZb87E3O32fgnm7We
  467. XQ8+us4SM47WTCkgMPt9enc2ZAW5c+Pj7o32l0IXXk/r8pSRE3A4jqOfIqqF
  468. G+PFlSdRDOaQduXNESTwtDcYfJ8191gWXUjYmOJ43Oxdh11JTzRuSPcY37+B
  469. vNqmf0O5RB1G27mt64rLCp4X8pW1L6BvxunCeYHNk3F7s9lb+GAwyvAhOyNE
  470. Lxm0gv9gUnH9C+o5rKlacrHQtYAZV2VF+UoBrSp8kJIKzZkqgP1sJFMKagl8
  471. 1VSczQqy5noJki2onIGuQS+5AlXPNfaxArgoq3aGwJDq6lZDxVdcU82RKMG/
  472. 4JArTVKzYrJc4pE+8CoJpGIGc65FIp8jO4WGSs3LtqISmlY2tUKyVMUFETWw
  473. H0xoUMvE8KbXB4aC6EPFzrDiF6iGlZxWBeFixiUrdXJb1kKx7y2C4hPM6Iou
  474. WI4hdVyO6yXVqkZqiXmottLJ9lzWK1LVKttqk8oZ1TS1NrJGS5jqeslQI0aK
  475. ieCvzNlgNZJqiccCc5WafLxmKdii4gsmSvYpISkteamzkRwXJiG5SoUpcERK
  476. 8xIE8QQ7o+eh5WAUy1qYRP8rioip/maI+OfyF1BLAQIUAxQAAAAIAGh8bCBb
  477. ZKT4ygIAAHgFAAAEAAAAAAAAAAEAAACkgQAAAAB0ZXN0UEsFBgAAAAABAAEA
  478. MgAAAOwCAAAAAA==
  479. --0-1737669234-826673975=:21583--
  480.  
  481.    For details about Pine's implementation of MIME, see the two MIME
  482.    sections "MIME: Reading a Message" and "MIME: Sending a Message" later
  483.    in this document.
  484.    
  485.      _________________________________________________________________
  486.                                       
  487. Folder Collections
  488.  
  489.    Folder Collections are Pine's way of dealing with more than a single
  490.    group of folders. With advent of PC-Pine and the development of tools
  491.    within IMAP to better manage remote folders, the time was ripe to
  492.    provide a mechanism for defining a group of remote folders. PC-Pine
  493.    forced the issue in that many potential PC-Pine users would be
  494.    migrating from UNIX pine in a time-sharing environment and, thus,
  495.    would have some investment in their archived messages on that host.
  496.    
  497.    Currently, Pine has no way to dynamically create or define
  498.    collections, but there is much work still going on in this area. The
  499.    hope is to provide a general way to define, display and navigate
  500.    remote folder collections in a consistent way across platforms and
  501.    applications. Especially important to this goal will be the hierarchy
  502.    support provisions in the IMAP4 specification. Stay tuned!
  503.    
  504.    For a more complete description of Folder Collections, see the section
  505.    on "Syntax for Collections."
  506.    
  507.    The Pine distribution is designed to require as little configuration
  508.    and effort at compile time as possible. Still, there are some Pine
  509.    behaviors which are set at the time you compile Pine. For each of
  510.    these, there is a reasonable (our opinion) default built into the
  511.    code, so most systems administrators will have no need for these
  512.    steps.
  513.  
  514.                            Building and Installation
  515.                                        
  516. UNIX Pine Compile-time Options
  517.  
  518.    The files you may need to modify are ./pine/makefile.xxx and
  519.    ./pine/osdep/os-xxx.h where "xxx" is the 3-letter code for your
  520.    platform. You can give the command build help to see the list of ports
  521.    incorporated into Pine and their associated 3-letter codes. The file
  522.    ./pine/makefile.xxx is where you would set your compiler options. By
  523.    default, Pine will be compiled with debugging on, optimization and
  524.    profile off. Note that if you compile with DEBUG off, then Pine will
  525.    not create its normal debug files, no matter how the debug-level and
  526.    debug command line flag are set.
  527.    
  528.    Most of Pine's behaviors are set in the file ./pine/osdep/os-xxx.h,
  529.    which includes comments that explain each setting. Some of these can
  530.    only be set when you compile. Others, however, can be overridden by
  531.    command-line flags to Pine or settings in Pine's user or system
  532.    configuration files. Some of the options which can be set when
  533.    compiling:
  534.    USE_QUOTAS
  535.           Determines whether quotas are checked on startup. Default is to
  536.           not check the quota.
  537.    ALLOW_CHANGING_FROM
  538.           Determines whether users are allowed to modify the From line on
  539.           outgoing mail. Even with this turned on, users will have to
  540.           include From in their default-composer-hdrs or customized-hdrs
  541.           in order to be able to edit the From line. Default is to not
  542.           allow any changing.
  543.    DEFAULT_DEBUG
  544.           Sets the level of debugging output created in Pine's debug
  545.           files. Default is level 2.
  546.    NEW_MAIL_TIME
  547.           Interval between new-mail checks. Default is 150 seconds.
  548.    OVERLAP
  549.           Number of lines overlap when user views the next page of a
  550.           message. Default is 2 lines.
  551.    USE_TERMINFO
  552.           Instructs Pine to use the terminfo database instead of termcap.
  553.           Default varies by system.
  554.    SENDMAIL
  555.    SENDMAILFLAGS
  556.           Sets the name and flags for the local program that will be
  557.           called to handle outgoing email. Default is /usr/lib/sendmail
  558.           -oi -oem -t.
  559.    SYSTEM_PINERC
  560.           The name of the file which holds Pine configuration information
  561.           for all users on the system. Default on UNIX systems is
  562.           /usr/local/lib/pine.conf.
  563.    SYSTEM_PINERC_FIXED
  564.           The name of the file which holds the same type of information
  565.           as for SYSTEM_PINERC, but only for variables that the
  566.           administrator wants to keep fixed. That is, users are not
  567.           allowed to change variables that are specified in the FIXED
  568.           file. Default on UNIX systems is
  569.           /usr/local/lib/pine.conf.fixed.
  570.           
  571.    There are a couple of more obscure options which are in the source
  572.    code because a few people have asked for them or because we changed
  573.    our minds about them being a good idea in general.
  574.    ENCODE_FROMS
  575.           Use Quoted-printable encoding so that From's at the beginning
  576.           of lines don't end up being escaped by >'s. Most people seem to
  577.           dislike the Q-P encoding more than the > escapes so this is off
  578.           by default. Once everyone has MIME mail readers, we'll turn
  579.           this on by default.
  580.    NO_KEYBOARD_LOCK
  581.           Disable the keyboard locking function in the main menu.
  582.           Keyboard locking is enabled by default. (Keyboard lock may also
  583.           be turned off by adding disable-kblock-cmd to the feature list
  584.           variable in the global pine.conf file.)
  585.           
  586.      _________________________________________________________________
  587.                                       
  588. Pico Compile-time Options
  589.  
  590.    There are even fewer options needed when compiling Pico. The two
  591.    interesting ones are for UNIX Pico versions only. The file that may
  592.    need some changing is ./pico/os_unix.h. Whatever is set will effect
  593.    the behavior of the Pico stand-alone program as well as the composer
  594.    within Pine.
  595.    SPELLER
  596.           Names the program called to do "normal" spell-checking.
  597.    TERMCAP
  598.    TERMINFO
  599.           Determines which of these terminal databases will be used.
  600.           
  601.      _________________________________________________________________
  602.                                       
  603. IMAPd Compile-time Options
  604.  
  605.    There are no options or settings required for the version of IMAPd
  606.    distributed with Pine. If you need to be doing more complex
  607.    modifications to IMAP, then you should pick up the IMAP development
  608.    package and work with that code. The developer's version of IMAP is
  609.    available for anonymous ftp from ftp.cac.washington.edu in the
  610.    directory mail. The file is called imap.tar.Z.
  611.    
  612.      _________________________________________________________________
  613.                                       
  614. Building the Pine Programs
  615.  
  616.    You may have already compiled Pine and tried it out. If so, great! If
  617.    not, you should be able to do it without too much trouble by following
  618.    these step-by-step instructions:
  619.    
  620.     1. Figure out what platform you're building for. You can give the
  621.        command build help to see the list of ports incorporated into
  622.        Pine. What you need is the three letter code for the platform.
  623.        Some examples are nxt for the Next operating system and ult for
  624.        Ultrix. If your platform is not in the list of ports, then you
  625.        might have some work ahead of you. First, check the file
  626.        doc/pine-ports to see if there are others working on a port for
  627.        your platform or to see if the port is included in the "contrib"
  628.        section of the source code. Ports in the contrib directory were
  629.        contributed by Pine administrators from around the world, but the
  630.        Pine development team has not been able to test the code. If Pine
  631.        has not yet been ported to your platform at all, read the section
  632.        on Porting Pine in this document.
  633.     2. Make sure you're in the root of the Pine source. When you type ls
  634.        you should see the following files and directories (or something
  635.        close to it):
  636.  
  637.         README  build   doc     makefile           pine
  638.         bin             contrib imap    pico
  639.     3. Make sure you're getting a clean start by giving the command build
  640.        clean. This should take only a few seconds to run.
  641.     4. Give the command build xxx where xxx is the three letter code you
  642.        picked in step 1. The compiler should grind away for a few
  643.        minutes.
  644.     5. When the compilation is complete the sizes of the four binaries
  645.        built (pine, mtest, imapd, pico) will be displayed. The actual
  646.        binaries are in the various source directories. In addition, the
  647.        bin directory contains a link to each program compiled. You can
  648.        just copy them out of bin or try them from there.
  649.        
  650.      _________________________________________________________________
  651.                                       
  652. Installing Pine and Pico on UNIX Platforms
  653.  
  654.    Installing Pine and Pico is remarkably simple. You take the program
  655.    files which you have just transferred or built and you move them to
  656.    the correct directory on your system. Most often the binaries go in
  657.    /usr/local/bin though sometimes they are placed in /usr/bin. All the
  658.    help text is compiled into Pine so there are no required auxiliary
  659.    files.
  660.    
  661.    There are, however, three optional auxiliary files:
  662.    /usr/local/lib/pine.info, /usr/local/lib/pine.conf, and
  663.    /usr/local/lib/pine.conf.fixed. The file pine.info contains text on
  664.    how to get further help on the local system. It is presented as the
  665.    first page of the help text for the main menu and should probably
  666.    refer to the local help desk or the system administrator. If this file
  667.    doesn't exist a generic version which suggests ``talking to the
  668.    computer support staff at your site'' is shown. The file pine.conf is
  669.    used to set system-wide default configurations for Pine. The file
  670.    pine.conf.fixed is also used to set system-wide default configurations
  671.    for Pine. The difference between these two files is that configuration
  672.    variables set in the pine.conf.fixed file may not normally be
  673.    over-ridden by a user. See the section on Pine Configuration later in
  674.    this document for details about the pine.conf and pine.conf.fixed
  675.    files.
  676.    
  677.      _________________________________________________________________
  678.                                       
  679. Installing PC-Pine
  680.  
  681.    Beginning with the Pine 3.90 release, there is a PC-Pine version that
  682.    runs under windows using the Winsock network interface. For those who
  683.    still need to run the DOS version of PC-Pine, there are versions for
  684.    four different TCP/IP network stacks: FTP Inc's PC/TCP, Novell's LAN
  685.    Workplace for DOS, Sun's PC/NFS, and WATTCP for packet drivers.
  686.    PC-Pine needs to be able to interact closely with the stack loaded on
  687.    your PC. Most of the time, this occurs automatically. However, there
  688.    are certain modifications that need be made.
  689.    
  690.    LAN Workplace for DOS Version 4.1
  691.           Set the environment variable EXCELAN in the PC's AUTOEXEC.BAT
  692.           file. This provides the necessary links so that LAN Workplace
  693.           for DOS 4.1 can translate domain names to IP numbers correctly.
  694.           It is needed because Pine was developed for LAN Workplace 4.0
  695.           and this particular variable is treated differently in 4.1 than
  696.           in 4.0. The EXCELAN variable must point to the directory in
  697.           which LAN Workplace is installed.
  698.    PC/TCP versions before 2.2
  699.           You need a file called PCTCP.INI which contains a bare-minimum
  700.           2-line description of the PC's configuration. It looks like
  701.           this:
  702.  
  703.                 [pctcp ifcust 0]
  704.                 ip-address=xx.xx.xx.xx
  705.           Where xx.xx.xx.xx is the IP address of the PC. Pine also
  706.           requires an environment variable, PCTCP, which points to this
  707.           file. For example:
  708.  
  709.                 set PCTCP=C:\PINE\PCTCP.INI
  710.    Packet Drivers
  711.           Pine needs to be made aware of the PC's network configuration
  712.           file. Simply edit the file WATTCP.CFG included in the Pine
  713.           distribution. The file includes 5 configuration
  714.           settings--IP-address, gateway, netmask, nameserver(s) and
  715.           domainslist. If you have a network configuration file for NCSA
  716.           Telnet then WATTCP.CFG is just a pared down version of the
  717.           CONFIG.TEL file you already made. Take a look at CONFIG.TEL to
  718.           find the correct settings for WATTCP.CFG. Once the
  719.           configuration file is made, the DOS environment variable
  720.           WATTCP.CFG needs to point at it. For example:
  721.  
  722.                 set WATTCP.CFG=C:\PINE
  723.           
  724.    In addition to networking software issues, you might need to worry
  725.    about setting the time zone. PC-Pine includes the time zone as part of
  726.    outgoing email. There is a generic way for PC applications to get the
  727.    time zone, but, because PC-Pine is one of a very few applications
  728.    which requires this information, time zone might not be previously
  729.    configured.
  730.    
  731.    The trick is to add an environment variable, TZ, to your PC's
  732.    AUTOEXEC.BAT file. The format for the TZ environment variable is as
  733.    follows:
  734.  
  735.         ZZZ[+H]H[:MM:SSTTT]
  736.  
  737.    First is the 3-letter code for your standard time, then a "+" or a "-"
  738.    for direction of offset from GMT, then the amount of offset (hours,
  739.    minutes, seconds) and finally the 3-letter code for your summer- or
  740.    daylight savings time. Everything in [] brackets is optional.
  741.    
  742.    The default time zone is "PST-8PDT" (U.S. Pacific Time).
  743.    Coincidentally, Microsoft is headquartered in that time zone.
  744.    
  745.    As an example, people in the Eastern part of the US should add this
  746.    line to their AUTOEXEC.BAT files:
  747.    
  748.         TZ=EST-5EDT
  749.  
  750.      _________________________________________________________________
  751.                                       
  752. Installing IMAPd
  753.  
  754.    When the Pine distribution is built on a UNIX station, the IMAP server
  755.    binary, imapd, is compiled. Installing imapd requires placing the
  756.    binary in the appropriate directory, usually /usr/etc, and adding
  757.    entries to /etc/services and /etc/inetd.conf or their counterparts.
  758.    The following line is appropriate for /etc/services:
  759.  
  760.   imap         143/tcp         # Mail transfer
  761.  
  762.    and the next line is appropriate for /etc/inetd.conf:
  763.   imap  stream  tcp     nowait  root    /usr/etc/imapd imapd
  764.  
  765.    The /etc/inetd.conf file entry may vary on different versions of UNIX.
  766.    Some have a slightly different set of fields. Also the pathname in
  767.    /etc/inetd.conf must match the path where imapd is installed.
  768.    
  769.    With this configuration, the IMAP server runs without
  770.    pre-authentication. Each new IMAP connection requires a correct
  771.    username and password. IMAP can also be run with pre-authentication
  772.    based on the standard rsh mechanism. To enable this, the user account
  773.    on the IMAP server must contain a valid file which grants access to
  774.    the client machine. Enabling rimap authentication is done by creating
  775.    a link called /etc/rimapd to imapd. Basically, what is happening is
  776.    that Pine is taking advantage of the ability that rsh has to use
  777.    privileged TCP ports so it doesn't have to run in privileged mode. If
  778.    the rimap authentication fails it will drop back to plain password
  779.    authentication.
  780.    
  781.    PC-Pine cannot take advantage of rimap authentication. Also, if your
  782.    system uses a distributed configuration database, like NIS, Yellow
  783.    Pages or Netinfo, be sure that appropriate steps are taken to ensure
  784.    the above mentioned information is updated.
  785.    
  786.      _________________________________________________________________
  787.                                       
  788. Support Files and Environment Variables: UNIX Pine
  789.  
  790.    This section lists the various files which Pine uses which are not
  791.    email folders. All of these are the default names of files, they may
  792.    vary based on Pine's configuration.
  793.    /usr/local/lib/pine.conf
  794.           Pine's global configuration file.
  795.    /usr/local/lib/pine.conf.fixed
  796.           Non-overridable global configuration file.
  797.    /usr/local/lib/pine.info
  798.           Local pointer to system administrator.
  799.    ~/.pinerc
  800.           Personal configuration file for each user.
  801.    ~/.addressbook
  802.           Personal addressbook
  803.    ~/.addressbook.lu
  804.           Personal address book lookup file (index file to speed up
  805.           lookups).
  806.    ~/.newsrc
  807.           Personal USENET subscription list. This is shared with other
  808.           newsreading programs.
  809.    ~/.pine-debugX
  810.           The files created for debugging Pine problems. By default,
  811.           there are 4 .pine-debug files kept at any time.
  812.    ~/.signature
  813.           A signature file which will be included in all outgoing email
  814.           messages.
  815.    ~/.pine-interrupted-mail
  816.           The text of a message which was interrupted by some unexpected
  817.           error which Pine detected.
  818.    ~/mail/postponed-msgs
  819.           A folder of messages which the user chose to postpone.
  820.    /etc/mailcap
  821.           System-wide mail capabilities file. Only used if $MAILCAPS not
  822.           set.
  823.    ~/.mailcap
  824.           Personal mail capabilities file. Combines with system-wide
  825.           mailcap. Only used if $MAILCAPS not set.
  826.           
  827.    The location of the following support files may be controlled by
  828.    variables in the personal or global Pine configuration file:
  829.    signature, addressbook and its index file, postponed messages, and
  830.    newsrc.
  831.    
  832.    Unix Pine uses the following environment variables:
  833.    TERM
  834.           Tells Pine what kind of terminal is being used.
  835.    DISPLAY
  836.           Determines if Pine will try to display IMAGE attachments.
  837.    SHELL
  838.           If not set, default is /bin/sh
  839.    MAILCAPS
  840.           A semicolon delimited list of path names to mailcap files.
  841.           
  842.      _________________________________________________________________
  843.                                       
  844. Support Files and Environment Variables: PC-Pine
  845.  
  846.    This section lists the various files which PC-Pine uses which are not
  847.    normal mail folders. All of these are the default names of files, they
  848.    may vary based on Pine's configuration.
  849.    
  850.    <PINE.EXE directory>\PINE.HLP
  851.           File containing Pine's internal help text.
  852.    <PINE.EXE directory>\PINE.NDX
  853.           Index of Pine's help text used by PC-Pine to locate entries.
  854.    $PINERC or $HOME\PINE\PINERC or <PINE.EXE dir>\PINERC
  855.           Path to (required) personal configuration file.
  856.    $PINECONF
  857.           Path of optional global configuration file.
  858.    <PINERC directory>\ADDRBOOK
  859.           Personal addressbook
  860.    <PINERC directory>\ADDRBOOK.LU
  861.           Personal address book lookup file (index file to speed up
  862.           lookups).
  863.    <PINERC directory>\PINE.SIG
  864.           A signature file which will be included in all outgoing email
  865.           messages.
  866.    <PINERC directory>\PINE.PWD
  867.           A file containing encrypted password for remote mail server.
  868.    <PINERC directory>\PINEDEBG.TXT
  869.           Location of Pine debug file.
  870.    <PINERC directory>\MAILCAP and/or <PINE.EXE dir>\MAILCAP
  871.           These paths are only used if $MAILCAPS not set.
  872.    $HOME\NEWSRC or <PINERC directory>\NEWSRC
  873.           Personal USENET subscription list. This may be shared with
  874.           other newsreading programs.
  875.    $HOME\MAIL\INTRUPTD
  876.           The text of a message which was interrupted by some unexpected
  877.           error which Pine detected.
  878.    $HOME\MAIL\POSTPOND
  879.           A folder of messages which the user chose to postpone.
  880.           
  881.    PC-Pine's help text and help text index file are expected to reside in
  882.    the same directory as the PINE.EXE executable, as they are essentially
  883.    extensions of the executable. The personal configuration file may be
  884.    in the same directory as the executable, or if that is inconvenient
  885.    because the executable is on a shared or read-only drive, then it can
  886.    be in a file named by the $PINERC environment variable, or in
  887.    $HOME\PINE\PINERC, where if not set, $HOME defaults to the root of the
  888.    current working drive.
  889.    
  890.    Most of the other support files key off of the location of the PINERC
  891.    file. However, in the case of the NEWSRC file, the path $HOME\NEWSRC
  892.    is checked first. Also, the postponed messages and interrupted message
  893.    folders are placed in the default folder collection, normally in the
  894.    directory $HOME\MAIL.
  895.    
  896.    The location of the following support files may be controlled by
  897.    variables in the personal or global Pine configuration file:
  898.    signature, addressbook (and its index file), postponed messages, and
  899.    newsrc.
  900.    
  901.    PC-Pine uses the following environment variables:
  902.    PINERC
  903.           Overrides default path to pinerc file.
  904.    PINECONF
  905.           Optional path to global pine config file.
  906.    HOME
  907.           If not set, Pine uses the root of the current drive, e.g. C:
  908.    TMP or TEMP
  909.           Specifies location of temporary storage area
  910.    COMSPEC
  911.           Specifies shell for external commands.
  912.    MAILCAPS
  913.           A semicolon delimited list of path names to mailcap files.
  914.  
  915.                             Command Line Arguments
  916.                                        
  917. Pine
  918.  
  919.    Pine and PC-Pine can accept quite a few command-line arguments. Many
  920.    of these arguments overlap with variables in the Pine configuration
  921.    file. If there is a difference, then a flag set in the command line
  922.    takes precedence. Both Pine and PC-Pine expect command line arguments
  923.    to be preceded by the "-" (dash) as normally used by UNIX programs.
  924.    
  925.    [address]
  926.           Send-to: If you put an unqualified string (or strings) in the
  927.           command line, Pine reads them as email addresses. Pine will
  928.           startup in the composer with a message started to the
  929.           person/people specified. Once the message is sent, the Pine
  930.           session closes.
  931.    < file
  932.           Pine will startup in the composer with file read into the body
  933.           of the message. Once the message is sent, the Pine session
  934.           closes.
  935.    -a
  936.           Special anonymous mode for UWIN*.
  937.    -c n
  938.           When used with the -f option, apply the nth context. This is
  939.           used when there are multiple folder collections and you want to
  940.           open a folder not in the primary collection.
  941.    -conf
  942.           Configuration: Prints a sample system configuration file to the
  943.           screen or standard output. To generate an initial system
  944.           configuration file, execute
  945.  
  946.                 pine -conf > /usr/local/lib/pine.conf
  947.           To generate a system configuration file using settings from an
  948.           old system configuration file, execute
  949.  
  950.                 pine -P old-pine.conf -conf > /usr/local/lib/pine.conf
  951.    -create_lu addrbook sort-order
  952.           Create auxiliary index (LookUp) file for addrbook and sort
  953.           addrbook in sort-order, which may be dont-sort, nickname,
  954.           fullname, nickname-with-lists-last, or
  955.           fullname-with-lists-last. Only useful when creating global or
  956.           shared address books.
  957.    -d debug-level
  958.           Debug Level: Sets the level of debugging information written by
  959.           Pine. debug-level can be set to any integer 0-9. A debug level
  960.           of 0 turns off debugging for the session. (Actually there are
  961.           some levels higher than 9, now, but you probably don't want to
  962.           see them.)
  963.    -f folder
  964.           Startup folder: Pine will open this folder in place of the
  965.           standard INBOX.
  966.    -F file
  967.           Open named text file and view with Pine's browser.
  968.    -h
  969.           Help: Prints the list of available command-line arguments to
  970.           the screen.
  971.    -i
  972.           Pine will start up in the FOLDER INDEX screen instead of the
  973.           MAIN MENU.
  974.           Configuration equivalent: initial-keystroke-list=i
  975.    -I a,b,c,...
  976.           Initial Keystrokes: Pine will execute this comma-separated
  977.           sequence of commands upon startup. This allows users to get
  978.           Pine to start in any of its menus/screens. You cannot include
  979.           any input to the composer in the initial keystrokes. The key
  980.           <Return> is represented by a ``CR'' in the keystroke list; the
  981.           spacebar is designated by the letters ``SPACE''. Control keys
  982.           are two character sequences beginning with ``^'', such as
  983.           ``^I''. A tab character is ``TAB''. Function keys are ``F1'' -
  984.           ``F12'' and the arrow keys are ``UP'', ``DOWN'', ``LEFT'', and
  985.           ``RIGHT''.
  986.           Configuration equivalent: initial-keystroke-list
  987.    -k
  988.           Function-Key Mode: When invoked in this way, Pine expects the
  989.           input of commands to be function-keys. Otherwise, commands are
  990.           linked to the regular character keys. This option supported
  991.           only in conjunction with UW Enhanced NCSA telnet.
  992.           Configuration equivalent: use-function-keys included in
  993.           feature-list.
  994.    -l
  995.           Folder-List: With "-l" set, Pine will default to an expanded
  996.           folder list. This means that the FOLDER LIST screen will always
  997.           show all folders in all collections. Default is to show the
  998.           folders in the current collection only.
  999.           Configuration equivalent: expanded-view-of-folders in
  1000.           feature-list.
  1001.    -n n
  1002.           Message-Number: When specified, Pine starts up in the FOLDER
  1003.           INDEX screen with the current message being the designated
  1004.           message number.
  1005.    -nr
  1006.           Special mode for UWIN*.
  1007.    -o folder
  1008.           Opens the INBOX (or a folder specified via the -f argument)
  1009.           ReadOnly.
  1010.    -p file
  1011.           Uses the named file as the personal configuration file instead
  1012.           of ~/.pinerc or the default PINERC search sequence PC-Pine
  1013.           uses.
  1014.    -P file
  1015.           Uses the named file as the system wide configuration file
  1016.           instead of /usr/local/lib/pine.conf. UNIX Pine only.
  1017.    -pinerc file
  1018.           Output fresh pinerc configuration to file, preserving the
  1019.           settings of variables that the user has made. Use file set to
  1020.           ``-'' to make output go to standard out.
  1021.    -r
  1022.           Restricted Mode: For UNIX Pine only. Pine in restricted mode
  1023.           can only send email to itself. Save and export are limited.
  1024.    -sort key
  1025.           Sort-Key: Specifies the order messages will be displayed in for
  1026.           the FOLDER INDEX screen. Key can have the following values:
  1027.           subject, arrival, date, from, size, orderedsubj,
  1028.           subject/reverse, arrival/reverse, date/reverse, from/reverse,
  1029.           size/reverse, orderedsubj/reverse. The default value is
  1030.           "arrival". The key value reverse is equivalent to
  1031.           arrival/reverse. This option will be expanded in the future to
  1032.           allow sorting on "to" and "cc".
  1033.           Configuration equivalent: sort-key.
  1034.    -z
  1035.           Enable Suspend: When run with this flag, the key sequence
  1036.           ctrl-z will suspend the Pine session.
  1037.           Configuration equivalent: enable-suspend included in
  1038.           feature-list.
  1039.    -option=value
  1040.           Assign value to the config option option. For example,
  1041.           -signature-file=sig1 or -feature-list=signature-at-bottom
  1042.           (Note: feature-list values are additive).
  1043.           * UWIN = University of Washington Information Navigator
  1044.           
  1045. Pico
  1046.  
  1047.           The following command line options are supported in Pico:
  1048.           
  1049.         +n
  1050.                 Causes pico to be started with the cursor located n lines
  1051.                 into the file. (Note: no space between "+" sign and
  1052.                 number)
  1053.                 
  1054.         -d
  1055.                 Rebind the "delete" key so the character the cursor is on
  1056.                 is rubbed out rather than the character to its left.
  1057.                 
  1058.         -e
  1059.                 Enable file name completion.
  1060.                 
  1061.         -f
  1062.                 Use function keys for commands. This option supported
  1063.                 only in conjunction with UW Enhanced NCSA telnet.
  1064.                 
  1065.         -g
  1066.                 Enable "Show Cursor" mode in file browser. Cause cursor
  1067.                 to be positioned before the current selection rather than
  1068.                 placed at the lower left of the display.
  1069.                 
  1070.         -k
  1071.                 Causes "Cut Text" command to remove characters from the
  1072.                 cursor position to the end of the line rather than remove
  1073.                 the entire line.
  1074.                 
  1075.         -m
  1076.                 Enable mouse functionality. This only works when
  1077.                 \fIpico\fR is run from within an X Window System "xterm"
  1078.                 window.
  1079.                 
  1080.         -nn
  1081.                 The -nn option enables new mail notification. The n
  1082.                 argument is optional, and specifies how often, in
  1083.                 seconds, your mailbox is checked for new mail. For
  1084.                 example, -n60 causes pico to check for new mail once
  1085.                 every minute. The default interval is 180 seconds, while
  1086.                 the minimum allowed is 30. (Note: no space between "n"
  1087.                 and the number)
  1088.                 
  1089.         -o dir
  1090.                 Sets operating directory. Only files within this
  1091.                 directory are accessible. Likewise, the file browser is
  1092.                 limited to the specified directory subtree.
  1093.                 
  1094.         -rn
  1095.                 Sets column used to limit the "Justify" command's right
  1096.                 margin.
  1097.                 
  1098.         -t
  1099.                 Enable "tool" mode. Intended for when pico is used as the
  1100.                 editor within other tools (e.g., Elm, Pnews). Pico will
  1101.                 not prompt for save on exit, and will not rename the
  1102.                 buffer during the "Write Out" command.
  1103.                 
  1104.         -v
  1105.                 View the file only, disallowing any editing.
  1106.                 
  1107.         -w
  1108.                 Disable word wrap (thus allow editing of long lines).
  1109.                 
  1110.                 Note: Pico will break any lines over 255 characters when
  1111.                 reading a file, regardless of word wrapping.
  1112.                 
  1113.         -x
  1114.                 Disable keymenu at the bottom of the screen.
  1115.                 
  1116.         -z
  1117.                 Enable ^Z suspension of pico.
  1118.                 
  1119. Pilot
  1120.  
  1121.           The following command line options are supported in Pilot:
  1122.           
  1123.         -a
  1124.                 Display all files including those beginning with a period
  1125.                 (.).
  1126.                 
  1127.         -f
  1128.                 Use function keys for commands. This option supported
  1129.                 only in conjunction with UW Enhanced NCSA telnet.
  1130.                 
  1131.         -g
  1132.                 Enable "Show Cursor" mode. Cause cursor to be positioned
  1133.                 before the current selection rather than placed at the
  1134.                 lower left of the display.
  1135.                 
  1136.         -m
  1137.                 Enable mouse functionality. This only works when pilot is
  1138.                 run from within an X Window System "xterm" window.
  1139.                 
  1140.         -nn
  1141.                 The -nn option enables new mail notification. The n
  1142.                 argument is optional, and specifies how often, in
  1143.                 seconds, your mailbox is checked for new mail. For
  1144.                 example, -n60 causes pilot to check for new mail once
  1145.                 every minute. The default interval is 180 seconds, while
  1146.                 the minimum allowed is 30. (Note: no space between "n"
  1147.                 and the number)
  1148.                 
  1149.         -o dir
  1150.                 Sets operating directory. Only files within the specified
  1151.                 directory are accessible and browsing is limited to the
  1152.                 specified directory subtree.
  1153.                 
  1154.         -v
  1155.                 Enable single vertical column display.
  1156.                 
  1157.         -x
  1158.                 Disable keymenu at the bottom of the screen.
  1159.                 
  1160.         -z
  1161.                 Enable ^Z suspension of pilot.
  1162.  
  1163.                          Configuration and Preferences
  1164.                                        
  1165. Pine Configuration
  1166.  
  1167.    There is very little in Pine which requires compile-time
  1168.    configuration. In most cases, the compiled-in preferences will suit
  1169.    users and administrators just fine. When running Pine on a UNIX
  1170.    system, the default built-in configuration can be changed by setting
  1171.    variables in the system configuration file, /usr/local/lib/pine.conf.
  1172.    Both Pine and PC-Pine also use personal (user-based) configuration
  1173.    files. On UNIX machines, the personal configuration file is the file
  1174.    ~/.pinerc. For PC-Pine systems, the personal configuration file is in
  1175.    $PINERC or $HOME\PINE\PINERC or <PINE.EXE dir>\PINERC.
  1176.    
  1177.    The syntax of a non-list configuration variable is this:
  1178.    
  1179.      <variable> = <value>
  1180.      
  1181.    If the value is absent then the variable is unset. To set a variable
  1182.    to the empty value the syntax is "". This is equivalent to an absent
  1183.    value except that it overrides any system-wide value that may be set.
  1184.    Quotes may be used around any value. All values are strings and end at
  1185.    the end of the line or the closing quote. Leading and trailing space
  1186.    is ignored unless it is included in the quotes. For some variables the
  1187.    only appropriate values are yes and no. There is also a second type of
  1188.    variable, lists. A list is a comma-separated list of values. The
  1189.    syntax for a list is:
  1190.    
  1191.      <variable> = <value> [, <value> , ... ]
  1192.      
  1193.    A list can be continued on subsequent lines by beginning the line with
  1194.    white-space. Both the per-user and global configuration files may
  1195.    contain comments which are lines beginning with a #.
  1196.    
  1197.    For UNIX Pine, there are five ways in which a variable can be set. In
  1198.    decreasing order of precedence they are:
  1199.     1. the system-wide fixed configuration file
  1200.     2. a command line argument
  1201.     3. the personal configuration file (which is usually set from the
  1202.        Config screen)
  1203.     4. the system-wide configuration file
  1204.     5. default in the source code.
  1205.        
  1206.    So, system-wide fixed settings always take precedence over command
  1207.    line flags, which take precedence over per-user settings, which take
  1208.    precedence over system-wide configuration settings, which take
  1209.    precedence over source code defaults. PC-Pine has the same precedence,
  1210.    but it does not use a system-wide fixed configuration file.
  1211.    
  1212.    You may get a sample/fresh copy of the system configuration file by
  1213.    running pine -conf. The result will be printed on the standard output
  1214.    with short comments describing each variable. (The online help in the
  1215.    Setup/Config screen provides longer comments.) If you need to fix some
  1216.    of the configuration variables, you would use the same template for
  1217.    the fixed configuration file as for the regular system-wide
  1218.    configuration file. (If it isn't clear, the purpose of the fixed
  1219.    configuration file is to allow system administrators to restrict the
  1220.    configurability of Pine. It is by no means a bullet-proof method.)
  1221.    Pine will automatically create the personal configuration file the
  1222.    first time it is run, so there is no need to generate a sample. Pine
  1223.    reads and writes the personal configuration file occasionally during
  1224.    normal operation. Users will not normally look at their personal
  1225.    configuration file, but will use the Setup/Config screen from within
  1226.    Pine to set the values in this file. If a user does add additional
  1227.    comments to the personal configuration file they will be retained.
  1228.    Pine always writes this file at least once when running, so you can
  1229.    tell when a user last invoked Pine by checking the date on this file.
  1230.    
  1231.    References to environment variables may be included in the Pine
  1232.    configuration files. The format is $variable or ${variable}. The
  1233.    character ~ will be expanded to the $HOME environment variable.
  1234.    
  1235.    When environment variables are used for Pine settings which take
  1236.    lists, you must have an environment variable set for each member of
  1237.    the list. That is, Pine won't properly recognize an environment
  1238.    variable which is set equal to a comma-delimited list. It is OK to
  1239.    reference unset environment variables in the Pine configuration file,
  1240.    which will expand to nothing.
  1241.    
  1242.      _________________________________________________________________
  1243.                                       
  1244. General Configuration Variables
  1245.  
  1246.    The following is a list of all Pine configuration variables, in
  1247.    alphabetical order. Note that not all variables apply to all versions
  1248.    of Pine and that some variables are only applicable in a system
  1249.    configuration file and some are only applicable in a personal
  1250.    configuration file.
  1251.    
  1252.    addrbook-sort-rule
  1253.           This variable sets up the default address book sorting.
  1254.           Currently, Pine will accept the values dont-sort,
  1255.           fullname-with-lists-last, fullname, nickname-with-lists-last,
  1256.           and nickname. The default is to sort by fullname with lists
  1257.           last.
  1258.    address-book
  1259.           A list of personal address books. Each entry in the list is an
  1260.           optional nickname followed by a pathname or file name relative
  1261.           to the home directory. This list will be added to the
  1262.           global-address-book list to arrive at the complete set of
  1263.           address books.
  1264.    addressbook-formats
  1265.           This option specifies the format that address books are
  1266.           displayed in. Normally, address books are displayed with the
  1267.           nicknames in the first column, the fullnames in the second
  1268.           column, and addresses in the third column. The system figures
  1269.           out reasonable defaults for the widths of the columns. An
  1270.           address book may be given a different format by listing special
  1271.           tokens in the order you want them to display. The possible
  1272.           tokens are NICKNAME, FULLNAME, ADDRESS, FCC, and COMMENT.
  1273.    alt-addresses
  1274.           This option provides a place for you to list alternative email
  1275.           addresses you may have. If set, the option affects the behavior
  1276.           of the Reply command and the "+" symbol in the Folder Index,
  1277.           which denotes that a message has been addressed specifically to
  1278.           you.
  1279.           With respect to Reply, the reply-to-all option will exclude
  1280.           addresses listed here.
  1281.    bugs-additional-data
  1282.           System-wide configuration file only. Program/Script used by
  1283.           "Report Bug" command. Output from the program/script is
  1284.           captured and attached to the bug report.
  1285.    bugs-nickname, bugs-fullname, bugs-address, local-fullname,
  1286.           local-address, suggest-fullname, and suggest-address
  1287.           System-wide configuration file only. These are used by the
  1288.           Report Bug command.
  1289.    character-set
  1290.           This sets the character set used by the terminal. Currently
  1291.           appropriate values are US-ASCII, ISO-8859-1 through ISO-8859-9
  1292.           and ISO-2022-JP. See the section on international character
  1293.           sets for more details. The default is US-ASCII.
  1294.    composer-wrap-column
  1295.           This option specifies an aspect of Pine's Composer. This gives
  1296.           the maximum width that auto-wrapped lines will have. It's also
  1297.           the maximum width of lines justified using the ^J Justify
  1298.           command. The normal default is "74". The largest allowed
  1299.           setting is normally "80" in order to prevent very long lines
  1300.           from being sent in outgoing mail. When the mail is actually
  1301.           sent, trailing spaces will be stripped off of each line.
  1302.    customized-hdrs
  1303.           Add these custom headers when composing. Also possible to add
  1304.           default values to these custom headers or to any of the
  1305.           standard headers. This is a list variable. Each entry in the
  1306.           list is a header name (the actual header name that will appear
  1307.           in the message) followed by an optional colon and value. For
  1308.           example, if a Reply-to header was needed because it was
  1309.           different from the From address, that could be accomplished
  1310.           with:
  1311.  
  1312.     customized-hdrs=Reply-to: fred_flintstone@bedrock.net
  1313.    default-composer-hdrs
  1314.           Show only these headers (by default) when composing a message.
  1315.           This list may include headers defined in the customized-hdrs
  1316.           list.
  1317.    default-fcc
  1318.           The name of the folder to which all outgoing mail goes is set
  1319.           here. The compiled-in default is sent-mail (UNIX) or sentmail
  1320.           (PC). It can be set to "" (two double quotes with nothing
  1321.           between them) to turn off saving copies of outgoing mail. If
  1322.           the default-fcc is a relative file name, then it is relative to
  1323.           your default collection for saves (see folder-collections).
  1324.    default-saved-msg-folder
  1325.           This option determines the default folder name for Saves... If
  1326.           this is not a path name, it will be in the default collection
  1327.           for saves. Any valid folder specification, local or IMAP, is
  1328.           allowed. This default folder only applies when the
  1329.           saved-msg-name-rule (see later in this configuration screen)
  1330.           doesn't override it. Unix Pine default is normally
  1331.           "saved-messages" in the default folder collection. PC-Pine
  1332.           default is "SAVEMAIL" (normally stored as SAVEMAIL.MTX).
  1333.    display-filters
  1334.           This option defines a list of text-filtering commands (programs
  1335.           or scripts) that may be used to filter text portions of
  1336.           received messages prior to their use (e.g., presentation in the
  1337.           "MESSAGE TEXT" display screen). For security reasons, the full
  1338.           path name of the filter command must be specified. See the
  1339.           online help text for further details.
  1340.    download-command
  1341.           This option affects the behavior of the Export command. It
  1342.           specifies a Unix program name, and any necessary command line
  1343.           arguments, that Pine can use to transfer the exported message
  1344.           to your personal computer's disk.
  1345.    download-command-prefix
  1346.           This option is used in conjunction with the Download-command
  1347.           option. It defines text to be written to the terminal emulator
  1348.           (via standard output) immediately prior to starting the
  1349.           download command. This is useful for integrated serial line
  1350.           file transfer agents that permit command passing (e.g.,
  1351.           Kermit's APC method).
  1352.    editor
  1353.           UNIX Pine only. Sets the name of the alternate editor for
  1354.           composing mail (message text only, not headers). It will be
  1355.           invoked with the "^_" command or it will be invoked
  1356.           automatically if the enable-alternate-editor-implicitly feature
  1357.           is set.
  1358.    fcc-name-rule
  1359.           Determines default folder name for fcc when composing.
  1360.           Currently, Pine will accept the values default-fcc,
  1361.           by-recipient, or last-fcc-used. If set to default-fcc, then
  1362.           Pine will use the value defined in the default-fcc variable
  1363.           (which itself has a default) for the Fcc header field. If set
  1364.           to by-recipient, then Pine will use the name of the recipient
  1365.           as a folder name for the fcc. The relevant recipient is the
  1366.           first address in the To field. If set to "last-fcc-used", then
  1367.           Pine will offer to fcc to whatever folder you used previously.
  1368.           In all cases, the field can still be edited after it is
  1369.           initially assigned. If the fcc field in the address book is set
  1370.           for the first To address, that value over-rides any value
  1371.           derived from this rule.
  1372.    feature-list
  1373.           This is a list of features (options) which may be turned on.
  1374.           You may also turn features off (the default) by prepending the
  1375.           characters no- to any of the features. The feature-list is
  1376.           additive. That is, first the system-wide feature-list is read
  1377.           and then the user's feature-list is read. This makes it
  1378.           possible for the system manager to turn some of the features on
  1379.           by default while still allowing the user to cancel that
  1380.           default. However, some of the documentation assumes that all of
  1381.           the features are off by default, so use this with care. In Unix
  1382.           Pine, features can be individually fixed on or off by setting
  1383.           the feature on or off in the system-wide fixed configuration
  1384.           file. Descriptions for most features are omitted here. See the
  1385.           online help for descriptions of each feature (in the
  1386.           Setup/Config screen).
  1387.           Here is the current list of possible features.
  1388.           
  1389.      allow-talk
  1390.      assume-slow-link
  1391.      auto-move-read-msgs
  1392.      auto-open-next-unread
  1393.      auto-unzoom-after-apply
  1394.      auto-zoom-after-select
  1395.      compose-cut-from-cursor
  1396.      compose-maps-delete-key-to-ctrl-d
  1397.      compose-rejects-unqualified-addrs
  1398.      compose-send-offers-first-filter
  1399.      compose-sets-newsgroup-without-confirm
  1400.      delete-skips-deleted
  1401.      disable-keyboard-lock-cmd
  1402.      disable-keymenu
  1403.      disable-config-cmd
  1404.      disable-password-cmd
  1405.      disable-signature-edit-cmd
  1406.      disable-update-cmd
  1407.      enable-8bit-esmtp-negotiation
  1408.      enable-8bit-nntp-posting
  1409.      enable-aggregate-command-set
  1410.      enable-alternate-editor-cmd
  1411.      enable-alternate-editor-implicitly
  1412.      enable-bounce-cmd
  1413.      enable-cruise-mode
  1414.      enable-cruise-mode-delete
  1415.      enable-dot-files
  1416.      enable-dot-folders
  1417.      enable-flag-cmd
  1418.      enable-flag-screen-implicitly
  1419.      enable-full-header-cmd
  1420.      enable-incoming-folders
  1421.      enable-jump-shortcut
  1422.      enable-mail-check-cue
  1423.      enable-mouse-in-xterm
  1424.      enable-suspend
  1425.      enable-tab-completion
  1426.      enable-unix-pipe-cmd
  1427.      enable-verbose-smtp-posting
  1428.      expanded-view-of-addressbooks
  1429.      expanded-view-of-folders
  1430.      expunge-without-confirm
  1431.      fcc-on-bounce
  1432.      include-attachments-in-reply
  1433.      include-header-in-reply
  1434.      include-text-in-reply
  1435.      news-post-without-validation
  1436.      news-read-in-newsrc-order
  1437.      pass-control-characters-as-is
  1438.      preserve-start-stop-characters
  1439.      print-formfeed-between-messages
  1440.      print-offers-custom-cmd-prompt
  1441.      print-index-enabled
  1442.      quell-dead-letter-on-cancel
  1443.      quell-lock-failure-warnings
  1444.      quell-status-message-beeping
  1445.      quit-without-confirm
  1446.      reply-always-uses-reply-to
  1447.      save-aggregates-copy-sequence
  1448.      save-will-quote-leading-froms
  1449.      save-will-not-delete
  1450.      save-will-advance
  1451.      select-without-confirm
  1452.      show-cursor
  1453.      show-selected-in-boldface
  1454.      signature-at-bottom
  1455.      single-column-folder-list
  1456.      tab-visits-next-new-message-only
  1457.      use-current-dir
  1458.      use-function-keys
  1459.      use-sender-not-x-sender
  1460.      user-lookup-even-if-domain-mismatch
  1461.           The four disable- features and the use-function-keys feature
  1462.           are intentionally suppressed from the Config screen, as they
  1463.           are intended for use by system administrators in the
  1464.           system-wide fixed config file. Their meaning should be
  1465.           self-explanatory.
  1466.           The save-aggregates-copy-sequence feature is suppressed from
  1467.           the config screen. This feature will optimize an aggregate copy
  1468.           operation, if possible, by issuing a single COPY command with a
  1469.           list of the messages to be copied. This may save network
  1470.           traffic when the source and destination folders are on the same
  1471.           IMAP server. However, many IMAP servers (including the UW IMAP
  1472.           server) do not preserve the order of messages when this
  1473.           optimization is applied. If this feature is not enabled, or if
  1474.           the folders are on different IMAP servers, or the folders are
  1475.           local and in different formats, Pine will copy each message
  1476.           individually.
  1477.    folder-collections
  1478.           This is a list of one or more collections where saved mail is
  1479.           stored. See the sections describing folder collections and
  1480.           collection syntax for more information. The first collection in
  1481.           this list is the default collection for saves, including
  1482.           default-fcc's.
  1483.    font-name
  1484.           Winsock version of PC Pine only.
  1485.    font-size
  1486.           Winsock version of PC Pine only.
  1487.    forced-abook-entry
  1488.           System-wide Pine configuration file only. Force these address
  1489.           book entries into all writable personal address books.
  1490.    global-address-book
  1491.           A list of shared address books. Each entry in the list is an
  1492.           optional nickname followed by a pathname or file name relative
  1493.           to the home directory. This list will be added to the
  1494.           address-book list to arrive at the complete set of address
  1495.           books. Global address books are defined to be readonly.
  1496.    goto-default-rule
  1497.           This value affects Pine's behavior when you use the Goto
  1498.           command. There are three possible values for this option:
  1499.           
  1500.         inbox-or-folder-in-recent-collection
  1501.                 If your current folder is "Inbox", Pine will offer the
  1502.                 last open folder as the default. If the current folder is
  1503.                 other than "Inbox", "Inbox" is offered as the default.
  1504.                 
  1505.         inbox-or-folder-in-first-collection
  1506.                 The second accepted value is a variation on the default
  1507.                 which again offers "Inbox" if it isn't currently open,
  1508.                 but otherwise offers the most recent folder in the first
  1509.                 collection found in the "FOLDER LIST" screen.
  1510.                 
  1511.         most-recent-folder
  1512.                 The last accepted value simply causes the most recently
  1513.                 opened folder to be offered as the default regardless of
  1514.                 the currently opened folder.
  1515.                 
  1516.           NOTE: The default while a newsgroup is open remains the same;
  1517.           the last open newsgroup.
  1518.    image-viewer
  1519.           This variable names the program to call for displaying parts of
  1520.           a MIME message that are of type IMAGE. If your system supports
  1521.           the mailcap system, you don't need to set this variable.
  1522.    inbox-path
  1523.           This specifies the name of the folder to use for the INBOX.
  1524.           Normally this is unset so the system's default is used. The
  1525.           most common reason for setting this is to open an IMAP mailbox
  1526.           for the INBOX. For example, {imap5.u.example.edu}inbox will
  1527.           open the user's standard INBOX on the mail server, imap5.
  1528.    incoming-archive-folders
  1529.           This is like Read-Message-Folder, only more general. This is a
  1530.           list of folder pairs, with the first separated from the second
  1531.           in the pair by a space. The first folder in a pair is the
  1532.           folder you want to archive, and the second folder is the folder
  1533.           that read messages from the first should be moved to. Depending
  1534.           on how you define the "auto-move-read-messages" setting in the
  1535.           "feature-list", you may or may not be asked when you leave the
  1536.           first folder if you want read messages to be moved to the
  1537.           second folder. In either case, moving the messages means they
  1538.           will be deleted from the first folder.
  1539.           If these are not path names, they will be in the default
  1540.           collection for saves. Any valid folder specification, local or
  1541.           remote (via IMAP), is allowed. There is no default.
  1542.    incoming-folders
  1543.           This is a list of one or more folders other than INBOX that may
  1544.           receive new messages. This list is slightly special in that it
  1545.           is always expanded in the folder lister. In the future, it may
  1546.           become more special. For example, it would be nice if Pine
  1547.           would monitor the folders in this list for new mail.
  1548.    index-format
  1549.           This option specifies the format that folder indexes are
  1550.           displayed in. Normally, the system figures out reasonable
  1551.           defaults for the widths of the columns of the index display. A
  1552.           non-standard display format can be used by listing special
  1553.           tokens in the order you want them to display. The tokens are
  1554.           STATUS, FULLSTATUS, MSGNO, DATE, SIZE, DESCRIPSIZE, SUBJECT,
  1555.           FROMORTO, FROM, and TO. The tokens are separated by spaces.
  1556.           Each of the tokens may also be optionally followed by
  1557.           parentheses with either a number or a percentage inside the
  1558.           parentheses.
  1559.    initial-keystroke-list
  1560.           This is a comma-separated list of keystrokes which Pine
  1561.           executes on startup. Items in the list are usually just
  1562.           characters, but there are some special values. SPACE, TAB, and
  1563.           CR mean a space character, tab character, and a carriage
  1564.           return, respectively. F1 through F12 stand for the twelve
  1565.           function keys. UP, DOWN, LEFT, and RIGHT stand for the arrow
  1566.           keys. Control characters are represented with ^<char>. A
  1567.           restriction is that you can't mix function keys and character
  1568.           keys in this list even though you can, in some cases, mix them
  1569.           when running Pine. A user can always use only character keys in
  1570.           the startup list even if he or she is using function keys
  1571.           normally, or vice versa.
  1572.    kblock-passwd-count
  1573.           System-wide Pine configuration file only. number of times a
  1574.           user will have to enter a password when they run the keyboard
  1575.           lock command in the main menu.
  1576.    last-time-prune-questioned
  1577.           Personal configuration file only. This variable records the
  1578.           month the user was last asked if his or her sent-mail folders
  1579.           should be pruned. The format is yy.mm. This is automatically
  1580.           updated by Pine when the the pruning is done or declined. If a
  1581.           user wanted to make Pine stop asking this question he or she
  1582.           could set this time to something far in the future.
  1583.    last-version-used
  1584.           Personal configuration file only. This is set automatically by
  1585.           Pine. It is used to keep track of the last version of Pine that
  1586.           was run by the user. Whenever the version number increases, a
  1587.           new version message is printed out.
  1588.    mail-check-interval
  1589.           This options specifies, in seconds, how often Pine will check
  1590.           for new mail. If set to zero, new-mail checking is disabled.
  1591.           There is a minimum value, normally 15 seconds.
  1592.    mail-directory
  1593.           This variable was more important in previous versions of Pine.
  1594.           Now it is used only as the default for storing personal folders
  1595.           (and only if there are no folder-collections defined). The
  1596.           default value is ~/mail on UNIX and $HOME\MAIL on a PC.
  1597.    mailcap-search-path
  1598.           This variable is used to replace Pine's default mailcap file
  1599.           search path. It takes one or more file names (full paths must
  1600.           be specified) in which to look for mail capability data.
  1601.    mimetype-search-path
  1602.           This variable is used to replace Pine's default mime.types file
  1603.           search path. It takes one or more file names (full paths must
  1604.           be specified) in which to look for file-name-extension to MIME
  1605.           type mapping data. See the Config Notes for details on Pine's
  1606.           usage of the MIME.Types File.
  1607.    news-active-file-path
  1608.           This option tells Pine where to look for the "active file" for
  1609.           newsgroups when accessing news locally, rather than via NNTP.
  1610.           The default path is usually "/usr/lib/news/active".
  1611.    news-collections
  1612.           This is a list of collections where news folders are located.
  1613.           See the section describing collections for more information.
  1614.    news-spool-directory
  1615.           This option tells Pine where to look for the "news spool" for
  1616.           newsgroups when accessing news locally, rather than via NNTP.
  1617.           The default path is usually "/usr/spool/news".
  1618.    newsrc-path
  1619.           This option overrides the default name Pine uses for your
  1620.           "newsrc" news status and subscription file. If set, Pine will
  1621.           take this value as the full pathname for the desired newsrc
  1622.           file.
  1623.    nntp-server
  1624.           One or more NNTP servers (host name or IP address) which Pine
  1625.           will use for outgoing news. If you read and post news to and
  1626.           from a single NNTP server, you can get away with only setting
  1627.           the nntp-server variable and leaving the news-collections
  1628.           variable unset.
  1629.    normal-background-color
  1630.           PC-Pine only. Currently, Pine will accept the colors black,
  1631.           blue, green, cyan, red, magenta, yellow, or white.
  1632.    normal-foreground-color
  1633.           PC-Pine only. See normal-background-color for possible colors.
  1634.    operating-dir
  1635.           System-wide Pine configuration file only. This names the root
  1636.           of the tree to which the user is restricted when reading and
  1637.           writing folders and files.
  1638.    personal-name
  1639.           Personal configuration file only (not applicable in global
  1640.           config. file). User's full personal name. On UNIX systems, the
  1641.           default is taken from the accounts data base (/etc/passwd).
  1642.    personal-print-command
  1643.           UNIX personal configuration file only. This corresponds to item
  1644.           3 in the printer menu. This variable retains the value of
  1645.           personal-print-command when the printer is set to something
  1646.           other than item 3. The personal-print-command can be set within
  1647.           Pine using the printer setup menu.
  1648.    postponed-folder
  1649.           The folder where postponed messages are stored. The default is
  1650.           postponed-msgs (Unix) or POSTPOND (PC).
  1651.    printer
  1652.           UNIX Pine only. This is the current setting for a user's
  1653.           printer. This variable is set from Pine's printer-setup
  1654.           function. The value must be either
  1655.           + "attached-to-ansi" -or-
  1656.           + the value of personal-print-command -or-
  1657.           + the value of standard-printer from the system-wide
  1658.             configuration.
  1659.    pruned-folders
  1660.           This variable allows you to define a list of one or more
  1661.           folders that Pine will offer to prune for you in the same way
  1662.           it automatically offers to prune your "sent-mail" folder each
  1663.           month. That is, once a month for each folder listed, Pine will
  1664.           offer to move the contents of the folder to a new folder of the
  1665.           same name but with the previous month's date appended. Pine
  1666.           will then look for any such date-appended folder names created
  1667.           for a previous month, and offer each one it finds for deletion.
  1668.           If you decline the first offer, no mail is moved and no new
  1669.           folder is created. Folders listed are assumed to exist, and the
  1670.           archive folders will be created, in the first collection
  1671.           defined by the "folder-collections" variable.
  1672.    read-message-folder
  1673.           If set, mail in the INBOX that has been read but not deleted is
  1674.           moved here, or rather, the user is asked whether or not he or
  1675.           she wants to move it here upon quitting Pine.
  1676.    reply-indent-string
  1677.           This variable specifies an aspect of Pine's Reply command. When
  1678.           a message is replied to and the text of the message is
  1679.           included, that text usually has the string "> " prepended to
  1680.           each line to indicate quoting.
  1681.           This variable specifies a different value for that string. If
  1682.           you wish to use a string which begins or ends with a space,
  1683.           enclose the string in double quotes.
  1684.           You can also include the sender's name in the prepended string.
  1685.           The first occurrence of "_FROM_" in the reply-indent-string
  1686.           will be replaced with the "username" portion of the address
  1687.           being replied to.
  1688.           The normal default is "> ".
  1689.    reverse-background-color
  1690.           PC-Pine only. See normal-background-color for possible colors.
  1691.    reverse-foreground-color
  1692.           PC-Pine only. See normal-background-color for possible colors.
  1693.    saved-msg-name-rule
  1694.           Determines default folder name when saving. Currently, Pine
  1695.           will accept the values "default-folder", "by-sender",
  1696.           "by-from", "by-recipient", or "last-folder-used". If set to
  1697.           default-folder, then Pine will offer the folder
  1698.           "saved-messages" (UNIX) or "SAVEMAIL" (PC) for saving messages.
  1699.           If set to by-from, then Pine will offer to save the message in
  1700.           a folder with the same name as the From, if there is one, or
  1701.           the Sender otherwise. If set to by-sender, then Pine will offer
  1702.           to save the message in a folder with the same name as the
  1703.           Sender, if there is one, or the From otherwise. If set to
  1704.           by-recipient, then Pine will offer to save the message in a
  1705.           folder with the same name as the recipient, which is the
  1706.           newsgroup if this was sent to a newsgroup or the To address if
  1707.           not. If set to "last-folder-used", then Pine will offer to save
  1708.           in whatever folder you used previously.
  1709.    sending-filters
  1710.           This option defines a list of text-filtering commands (programs
  1711.           and scripts) that may be selectively invoked to process a
  1712.           message just before it is sent. If set, the Composer's ^X
  1713.           (Send) command will allow you to select which filter (or none)
  1714.           to apply to the message before it is sent. For security
  1715.           reasons, the full path of the filter program must be specified.
  1716.           See the online help text for further details.
  1717.    sendmail-path
  1718.           System-wide Pine configuration file only. This names the path
  1719.           to an alternative program, and any necessary arguments, to be
  1720.           used in posting mail messages.
  1721.    signature-file
  1722.           Names the file to be included as the signature. This defaults
  1723.           to ~/.signature on UNIX and <PINERC directory>\PINE.SIG on a
  1724.           PC.
  1725.    smtp-server
  1726.           One or more SMTP servers (host name or IP address) which Pine
  1727.           will use for outgoing mail. If not set, Pine passes outgoing
  1728.           email to the sendmail program on the local machine. PC-Pine
  1729.           users must have this variable set in order to send mail as they
  1730.           have no sendmail program. An alternate port may be specified by
  1731.           appending :port to the host name or IP address. See the SMTP
  1732.           Servers section for details.
  1733.    sort-key
  1734.           This variable sets up the default index sorting. The default is
  1735.           to sort by arrival order. It has the same functionality as the
  1736.           -sort command line argument and the $ command in the folder
  1737.           index. If a sort-key is set, then all folders open during the
  1738.           session will have that as the default sort order.
  1739.    speller
  1740.           This option affects the behavior of the ^T (spell check)
  1741.           command in the Composer. It specifies the program invoked by ^T
  1742.           in the Composer. By default, Pine uses the system's "spell"
  1743.           command. Pine will use the command defined by this option (if
  1744.           any) instead. When invoking the spell-checking program, Pine
  1745.           appends a tempfile name (where the message is passed) to the
  1746.           command line.
  1747.    standard-printer
  1748.           System-wide configuration file only. Specifies the command for
  1749.           printer selection number 2 on the printer menu. Unix only.
  1750.    status-message-delay
  1751.           If this is set to a positive number, it causes the cursor to
  1752.           move to the status line whenever a status message is printed
  1753.           and pause there for this many seconds. It will probably only be
  1754.           useful if the show-cursor feature is also turned on.
  1755.    upload-command
  1756.           This option affects the behavior of the Composer's "Read File"
  1757.           (^R in the message body) and "Attach File" (^J in the header)
  1758.           commands. It specifies a Unix program name, and any necessary
  1759.           command line arguments, that Pine can use to transfer files
  1760.           from your personal computer into messages that you are
  1761.           composing.
  1762.    upload-command-prefix
  1763.           This option is used in conjunction with the Upload-command
  1764.           option. It defines text to be written to the terminal emulator
  1765.           (via standard output) immediately prior to starting upload
  1766.           command. This is useful for integrated serial line file
  1767.           transfer agents that permit command passing (e.g., Kermit's APC
  1768.           method).
  1769.    use-only-domain-name
  1770.           Can be set to yes or no. At this point anything but yes means
  1771.           no. If set to yes the first label in the host name will be
  1772.           lopped off to get the domain name and the domain name will be
  1773.           used for outgoing mail and such. That is, if the host name is
  1774.           carson.u.example.edu and this variable is set to yes, then
  1775.           u.example.edu will be used on outgoing mail. Only meaningful if
  1776.           user-domain is NOT set.
  1777.    user-domain
  1778.           Sets the domain or host name for the user, overriding the
  1779.           system host or domain name. See the domain name section.
  1780.    user-id
  1781.           PC-Pine only. Sets the username that is placed on all outgoing
  1782.           messages.
  1783.    viewer-hdrs
  1784.           You may change the default list of headers that are viewed by
  1785.           listing the headers you want to view here. If the headers in
  1786.           your "viewer-hdrs" list are present in the message, then they
  1787.           will be shown. The order of the headers you list will be
  1788.           honored. If the special value "all-except" is included as the
  1789.           first header in the "viewer-hdrs" list, then all headers in the
  1790.           message except those in the list will be shown. The values are
  1791.           all case insensitive.
  1792.    viewer-overlap
  1793.           This option specifies an aspect of Pine's Message Viewing
  1794.           screen. When the space bar is used to page forward in a
  1795.           message, the number of lines specified by the "viewer-overlap"
  1796.           variable will be repeated from the bottom of the screen. That
  1797.           is, if this was set to two lines, then the bottom two lines of
  1798.           the screen would be repeated on the top of the next screen. The
  1799.           normal default value is "2".
  1800.    window-position
  1801.           Winsock version of PC Pine only. Window position in the format:
  1802.           CxR+X+Yn Where C and R are the window size in characters and X
  1803.           and Y are the screen position of the top left corner of the
  1804.           window.
  1805.           
  1806.      _________________________________________________________________
  1807.                                       
  1808. Retired Variables
  1809.  
  1810.    Variables that are no longer used by the current Pine version. When an
  1811.    obsolete variable is encountered, its value is applied to any new
  1812.    corresponding setting and a comment is place before it noting that it
  1813.    is no longer in used. The replaced values at the time of this document
  1814.    include:
  1815.    
  1816.    elm-style-save
  1817.           Replaced by saved-msg-name-rule
  1818.    feature-level
  1819.           Replaced by feature-list.
  1820.    header-in-reply
  1821.           Replaced by include-header-in-reply in the feature-list.
  1822.    old-style-reply
  1823.           Replaced by signature-at-bottom in the feature-list.
  1824.    save-by-sender
  1825.           Replaced by saved-msg-name-rule.
  1826.    show-all-characters
  1827.           No replacement, it always works this way now.
  1828.           
  1829.      _________________________________________________________________
  1830.  
  1831.                     Notes on Configuration and Preferences
  1832.                                        
  1833. Pine in Function Key Mode
  1834.  
  1835.    The standard Pine uses alphabetic keys for most commands, and control
  1836.    keys in the composer. Despite possible appearances, the current
  1837.    bindings are the result of much discussion and thought. All the
  1838.    commands in the composer are single control characters. This keeps
  1839.    things very neat and simple for users. Two character commands in the
  1840.    composer are a possibility, but we're trying to avoid them because of
  1841.    the added complexity for the user.
  1842.    
  1843.    Pine can also operate in a function-key mode. To go into this mode
  1844.    invoke pine -k or (on some UNIX systems) pinef. On a UNIX system, you
  1845.    can link or copy the pine executable to pinef to install pinef.
  1846.    Alternatively, users and systems administrators can set the
  1847.    use-function-keys feature in the personal or system-wide Pine
  1848.    configuration file. The command menus at the bottom of the screen will
  1849.    show F1-F12 instead of the alphabetic commands. In addition, the help
  1850.    screens will be written in terms of function keys and not alphabetic
  1851.    keys.
  1852.    
  1853.    One of the results of using Pine in function-key mode is that users
  1854.    can only choose from twelve commands at any given time. In
  1855.    alphabetic-key mode, a user can press a key for a command (say, q to
  1856.    quit) and that command can be fulfilled. In function-key mode, the
  1857.    command must be visible on the bottom key-menu in order to be used.
  1858.    There are some screens where 34 commands are operational; function-key
  1859.    users can get to all of them, just not all at once.
  1860.    
  1861.      _________________________________________________________________
  1862.                                       
  1863. Domain Settings
  1864.  
  1865.    Pine uses the default domain for a few different tasks. First, it is
  1866.    tacked onto the user-id for outgoing email. Second, it is tacked onto
  1867.    all "local" (unqualified) addresses in the "To:" or "Cc:" fields of
  1868.    messages being composed (unless they are found in the address book).
  1869.    The domain name is also used to generate message-id lines for each
  1870.    outgoing message and to allow Pine to check if an address is that of
  1871.    the current Pine user.
  1872.    
  1873.    Pine determines the domain name according to whichever of these it
  1874.    finds. The list here is in decreasing order of precedence.
  1875.     1. Value of the variable user-domain in the system fixed
  1876.        configuration file
  1877.     2. Value of the variable user-domain in the personal configuration
  1878.        file
  1879.     3. Value of the variable user-domain is the system-wide configuration
  1880.        file
  1881.     4. Value from an external database (DNS, /etc/hosts, NIS) as modified
  1882.        by a system fixed configuration file if use-domain-name-only set
  1883.        to "yes"
  1884.     5. Value from an external database (DNS, /etc/hosts, NIS) as modified
  1885.        by a personal configuration file if use-domain-name-only set to
  1886.        "yes"
  1887.     6. Value from an external database (DNS, /etc/hosts, NIS) as modified
  1888.        by a system configuration file if use-domain-name-only set to
  1889.        "yes"
  1890.     7. Unmodified value (host name) from an external database
  1891.        
  1892.    The easiest way for this system to work is for PC-Pine users and UNIX
  1893.    Pine system administrators to set the user-domain variable. The
  1894.    variable use-only-domain-name is helpful if your site
  1895.    supports/requires hostless addressing, but for some reason you don't
  1896.    want to use the user-domain variable.
  1897.    
  1898.    A new feature in 3.90 is called user-lookup-even-if-domain-mismatch.
  1899.    This will cause the personal name field to be looked up from the
  1900.    password file even if the domain of an address isn't a substring of
  1901.    the local host name. See the online help in the Setup/Config screen
  1902.    for full information.
  1903.    
  1904.      _________________________________________________________________
  1905.                                       
  1906. Syntax for Collections
  1907.  
  1908.    In many environments, it is quite common to have collections of
  1909.    archived mail on various hosts around the network. Using the folder
  1910.    collections facility in Pine, access to these archives is just as
  1911.    simple as access to folders on Pine's local disk.
  1912.    
  1913.    "Collection" is the word we use in Pine to describe a set of folders.
  1914.    A collection corresponds loosely to a "directory" containing mail
  1915.    folders. Folders within a defined collection can be manipulated
  1916.    (opened, saved-to, etc) using just their simple name. Any number of
  1917.    folder collections can be defined, and pine will adjust its menus and
  1918.    prompts to help navigate them.
  1919.    
  1920.    The way collections are defined in Pine is with the folder-collections
  1921.    variable in the Pine configuration file. Folder-collections takes a
  1922.    list of one or more collections, each (optionally) preceded by a
  1923.    user-defined logical name (label). Once collections are defined, Pine
  1924.    adjusts its menus and behavior to allow choosing files by their simple
  1925.    name within the collection. Collections are always defined in the
  1926.    configuration file; there is no time that Pine will ever ask a
  1927.    question which requires a user to input a collection specifier. This
  1928.    might change in the future if/when the Goto command is extended to
  1929.    allow jumping to a collection/directory as well as an individual
  1930.    folder.
  1931.    
  1932.    Consider the following:
  1933.    folder-collections=  Local-Mail      C:\MAIL\[],
  1934.                         Remote-Mail     {imap.u.example.edu}mail/[]
  1935.  
  1936.    The example shows two collections defined (a comma separated list;
  1937.    newlines in the list are OK if there's one or more spaces before the
  1938.    next entry), one local and one remote. Each collection is a
  1939.    space-delimited pair of elements-first an optional logical-name and
  1940.    second the collection specifier. The logical-name can have spaces if
  1941.    it has quotes around it (but keeping the logical name short and
  1942.    descriptive works best). Pine will use the logical-name (if provided)
  1943.    to reference all folders in the collection, so the user never has to
  1944.    see the ugliness of the collection specifier.
  1945.    
  1946.    The collection specifier can be thought of as an extended IMAP format
  1947.    (see the "Remote Folders" section for a description of IMAP format
  1948.    names). Basically, a pair of square-brackets are placed in the fully
  1949.    qualified IMAP path where the simple folder name (the part without the
  1950.    host name and path) would appear. Like IMAP, the path can be either
  1951.    fully qualified (i.e., with a leading '/') or relative to your home
  1952.    directory.
  1953.    
  1954.    An advanced feature of this notation is that a pattern within the
  1955.    square brackets allows the user to define a collection to be a subset
  1956.    of a directory. For example, a collection defined with the specifier:
  1957.  
  1958.         M-Mail          C:MAIL/[m*]
  1959.  
  1960.    will provide a view in the folder lister of all folders in the PC's
  1961.    "C:MAIL" directory that start with the letter 'm' (case insensitive
  1962.    under DOS, of course). Further, the wildcard matching will honor
  1963.    characters trailing the '*' in the pattern.
  1964.    
  1965.    From within Pine, the FOLDER LIST display will be adjusted to allow
  1966.    browsing of the folders in any defined collection. Even more, you'll
  1967.    notice in the Goto and Save commands a pair of sub-commands to rotate
  1968.    through the list of logical collection names, so only a simple name
  1969.    need be input in order to operate on a folder in any collection.
  1970.    
  1971.    The first collection specified in the folder-collections has special
  1972.    significance. That folder is the "default collection for saves". In
  1973.    cases where the user does not specify which collection should be used
  1974.    to save a message, the default collection for saves will be used.
  1975.    Also, if the default-fcc is a relative file name, then it is relative
  1976.    to the default collection for saves.
  1977.    
  1978.    The notion of collections encompasses both email folders and news
  1979.    reading. The variable news-collections uses nearly the same format as
  1980.    folder-collections. Newsgroups can be defined for convenient access
  1981.    via either IMAP or NNTP. There are advantages and disadvantages to
  1982.    both access methods. In the IMAP case, your news environment state is
  1983.    maintained on the server and, thus, will be seen by any client. The
  1984.    downside is that, at the moment, you must have an account on the
  1985.    server. In the NNTP case, server access is mostly anonymous and no
  1986.    state/accounting need be maintained on it. The downside is that each
  1987.    client, for now, must individually maintain news environment state.
  1988.    
  1989.    An example pinerc entry might be:
  1990.      news-collections=  Remote-State    *{news.u.example.edu}[],
  1991.                         Local-State     *{news.u.example.edu/nntp}[]
  1992.  
  1993.    Note that each news collection must be preceded by a '*' to indicate
  1994.    non-mail access. Only newsgroups to which you are subscribed are
  1995.    included in the collection.
  1996.    
  1997.    The pattern matching facility can be applied so as to define a news
  1998.    collection which is a subset of all the newsgroups you subscribe to.
  1999.    For example, this could be a valid collection:
  2000.  
  2001.                         Newsfeed-News   *{news.u.example.edu/nntp}[clari.*]
  2002.  
  2003.    Collection handling is a tough problem to solve in a general way, and
  2004.    the explanation of the syntax is a bit ugly. The upside is, hopefully,
  2005.    that for a little complexity in the Pine configuration file you get
  2006.    simple management of multiple folders in diverse locations.
  2007.    
  2008.      _________________________________________________________________
  2009.                                       
  2010. Syntax for Remote Folders
  2011.  
  2012.    Remote folders are distinguished from local folders by a leading host
  2013.    name bracketed by '{' and '}'. The path and folder name immediately
  2014.    following the closing bracket, '}', is interpreted by the IMAP server
  2015.    and is in a form compatible with that server (i.e., path delimiters
  2016.    and naming syntax relative to that server).
  2017.    
  2018.    Typically, a folder name without any path description is understood to
  2019.    reside in the user's "home directory" (i.e., in some way the user's
  2020.    personal, writable file area), as are incomplete path designations.
  2021.    However, the IMAP specification does not require that unqualified
  2022.    folder names live in one's home directory, so some IMAP servers may
  2023.    require fully qualified names. An example of a remote folder
  2024.    specification would be,
  2025.  
  2026.         {mailhost.cac.washington.edu}mail/saved-messages
  2027.  
  2028.    This example simply specifies a folder named ``saved-messages'' on the
  2029.    imap server ``mailhost.cac.washington.edu'', in the ``mail''
  2030.    subdirectory of the user's home directory. Easy isn't it?
  2031.    
  2032.    To confuse things a bit, qualifiers are permitted within the brackets
  2033.    following the host name. These qualifiers consist of a slash, '/'
  2034.    character followed by a keyword or keyword and value equality, and
  2035.    have the effect of modifying how the connection is made to the host
  2036.    specified. An example of such a specification might be,
  2037.  
  2038.         *{pine.cac.washington.edu/anonymous}updates
  2039.  
  2040.    Another example might be,
  2041.         *{news.u.washington.edu/nntp}comp.mail.mime
  2042.  
  2043.    Both of these examples illustrate a different qualifier. The first,
  2044.    specifying ``anonymous'' access to the IMAP server on
  2045.    ``pine.cac.washington.edu''. The second is interesting in that it
  2046.    specifies an altogether different access method: access via the
  2047.    Network News Transport Protocol (NNTP). Both examples bring to light
  2048.    one remaining subtlety. The leading ``*'' tells pine to treat the
  2049.    remote folder as a Bulletin-Board (i.e., typically a shared, read-only
  2050.    resource) and to adjusts its behavior accordingly.
  2051.    
  2052.      _________________________________________________________________
  2053.                                       
  2054. Sorting a Folder
  2055.  
  2056.    The mail index may be sorted by subject, size, sender, date, or
  2057.    arrival order. Each sort order can also be reversed. The $ command
  2058.    will prompt the user for the sort order. The sort order can also be
  2059.    specified on the command line with the -sort flag or (equivalently)
  2060.    with the sort-key variable in the .pinerc file. When a user changes
  2061.    folders, the sort order will go back to the original sort order. The
  2062.    command line (-sort) or configuration file sort specification
  2063.    (sort-key) changes the original sort order.
  2064.    
  2065.    When a folder is sorted and new mail arrives in the folder it will be
  2066.    inserted in its properly sorted place. This can be a little odd when
  2067.    the folder is sorted by something like the subject. It can also be a
  2068.    little slow if you are viewing a large, sorted INBOX, since the INBOX
  2069.    will have to be re-sorted whenever new mail arrives.
  2070.    
  2071.    The sorts are all independent of case and ignore leading or trailing
  2072.    white space. There are actually two forms of subject sort. One called
  2073.    "Subject" and the other called "OrderedSubj". They both ignore "Re:"
  2074.    at the beginning and "(fwd)" at the end of the subjects. Subject sorts
  2075.    all the subjects alphabetically. OrderedSubj sorts by subjects
  2076.    alphabetically, groups messages with the same subject
  2077.    (pseudo-threads), then sorts the groups by the date of the first
  2078.    message of the group. The sort by sender sorts by the userid, not the
  2079.    full name. The arrival sort is basically no sort at all and the date
  2080.    sort depends on the format of the date. Some dates are in strange
  2081.    formats and are unparsable. The time zone is also taken into account.
  2082.    
  2083.    Sorting large mail folders can be very slow since it requires fetching
  2084.    all the headers of the mail messages. With UNIX Pine, only the first
  2085.    sort is slow since Pine keeps a copy of all the headers. One exception
  2086.    is sorting in reverse arrival order. This is fast because no headers
  2087.    have to be examined. Pine will show progress as it is sorting.
  2088.    
  2089.      _________________________________________________________________
  2090.                                       
  2091. Alternate Editor
  2092.  
  2093.    In the Pine composer you can use any text editor, such as vi or emacs,
  2094.    for composing the message text. The addresses and subject still must
  2095.    be edited using the standard Pine composer. If you include the feature
  2096.    enable-alternate-editor-cmd in your .pinerc you can type ^_ while in
  2097.    the body of the message in the composer and be prompted for the
  2098.    editor. If you also set the editor variable in your .pinerc then ^_
  2099.    will invoke the configured editor when you type it.
  2100.    
  2101.    Turning on the feature enable-alternate-editor-implicitly will
  2102.    automatically invoke the editor you have defined with the editor
  2103.    variable whenever you enter the body of a message you are composing.
  2104.    For example, when you move out of the last header line and into the
  2105.    body of the message, the alternate editor will be automatically
  2106.    invoked.
  2107.    
  2108.    We know that many people would like to use the alternate editor to
  2109.    edit the mail header as well. We considered several designs for this
  2110.    and didn't come up with one that we liked and that was easy to
  2111.    implement. One of the main problems is that you lose access to the
  2112.    address book.
  2113.    
  2114.      _________________________________________________________________
  2115.                                       
  2116. Signatures and Signature Placement
  2117.  
  2118.    If the file ~/.signature (UNIX) or <PINERCdirectory>\PINE.SIG (PC)
  2119.    exists, it will be included in all outgoing messages. It is included
  2120.    before composition starts so that the user has a chance to edit it out
  2121.    if he or she likes. The file name for the signature can be changed by
  2122.    setting the signature-file variable in the .pinerc. There is no way to
  2123.    have Pine include different signatures in different outgoing messages
  2124.    automatically. You can do this by hand, however, by having multiple
  2125.    signature files (.sig1, .sig2, .sig3, etc) and choosing to include (^R
  2126.    in the composer) the correct one for the message being sent.
  2127.    
  2128.    Pine's default behavior encourages a user to put his or her
  2129.    contribution before the inclusion of the original text of the message
  2130.    being forwarded or replied to, This is contrary to some conventions,
  2131.    but makes the conversation more readable when a long original message
  2132.    is included in a reply for context. The reader doesn't have to scroll
  2133.    through the original text that he or she has probably already seen to
  2134.    find the new text. If the reader wishes to see the old message(s), the
  2135.    reader can scroll further into the message. Users who prefer to add
  2136.    their input at the end of a message should set the signature-at-bottom
  2137.    feature in the feature-list. The signature will then be appended to
  2138.    the end of the message after any included text. This feature applies
  2139.    when replying, not when forwarding.
  2140.    
  2141.      _________________________________________________________________
  2142.                                       
  2143. Feature List Variable
  2144.  
  2145.    Pine used to have feature levels for users with different amounts of
  2146.    experience. We found that this was too restrictive. Pine now has a
  2147.    feature-list instead. Each user may pick and choose which features
  2148.    they would like enabled (simple to do in the Setup/Config screen).
  2149.    There is a short on-line help explaining the effect of each of the
  2150.    features in the Setup/Config screen. When the cursor is highlighting a
  2151.    feature, the "?" command will show the help text for that feature.
  2152.    Features don't have values, they are just turned on or off. They are
  2153.    all off by default.
  2154.    
  2155.    The feature-list variable is different from all other configuration
  2156.    variables in that its value is additive. That is, the system-wide
  2157.    configuration file can have some features turned on by default. The
  2158.    user can select other features in their personal configuration file
  2159.    and those features will be added to the set of features turned on in
  2160.    the system-wide configuration file. (With all other configuration
  2161.    variables, the user's values replace the system-wide values.)
  2162.    Likewise, additional features may be set on the command-line with the
  2163.    argument "-feature-list=". These will be added to the others.
  2164.    
  2165.    The treatment of feature-list in the system-wide fixed configuration
  2166.    file is also different from other variables. The system management can
  2167.    fix the value of individual features by placing them in the fixed
  2168.    configuration file. Users will not be able to alter those features,
  2169.    but will still be able to set the other non-restricted features the
  2170.    way they like.
  2171.    
  2172.    Because feature-list is additive, there is a way to turn features off
  2173.    as well as on. Prepending the prefix "no-" to any feature sets it to
  2174.    off. This is useful for over-riding the system-wide default in the
  2175.    personal configuration file or for over-riding the system-wide default
  2176.    or the personal configuration value on the command line. For example,
  2177.    if the system-wide default configuration has the quit-without-confirm
  2178.    feature set, the user can over-ride that (and turn it off) by
  2179.    including no-quit-without-confirm in the personal configuration file
  2180.    or by giving the command line argument
  2181.    -feature-list=no-quit-without-confirm. More features (options) will no
  2182.    doubt continue to be added.
  2183.    
  2184.      _________________________________________________________________
  2185.                                       
  2186. SMTP Servers
  2187.  
  2188.    It is sometimes desireable to set smtp-server=localhost instead of
  2189.    setting sendmail-path to overcome the inability to negotiate ESMTP
  2190.    options when sendmail is invoked with the -t option. Sendmail can also
  2191.    be subject to unacceptable delays due to slow DNS lookups and other
  2192.    problems.
  2193.    
  2194.    It is sometimes desireable to configure an SMTP server on a port other
  2195.    than the default port 25. This may be used to provide an alternate
  2196.    service that is optimized for a particular environment or provides
  2197.    different features from the port 25 server. An example would be a
  2198.    program that negotiates ESMTP options and queues a message, but does
  2199.    not attempt to deliver messages. This would avoid delays frequently
  2200.    encountered when invoking sendmail directly.
  2201.    
  2202.    A typical configuration would consist of
  2203.      * A program that implements the SMTP or ESMTP protocol via stdio.
  2204.      * An entry in /etc/services for the alternate service.
  2205.      * An entry in /etc/inetd.conf for the alternate service.
  2206.      * An entry in /usr/local/lib/pine.conf,
  2207.        /usr/local/lib/pine.conf.fixed or ~/.pinerc.
  2208.        
  2209.      _________________________________________________________________
  2210.                                       
  2211. MIME.Types file
  2212.  
  2213.    Pine's MIME-TYPE support is based on code contributed by Hans Drexler
  2214.    <drexler@mpi.nl>. Pine assigns MIME Content-Types types
  2215.    according to file name extensions found in a system wide files
  2216.    /usr/local/lib/mime.types and /etc/mime.types, and a user specific
  2217.    ~/.mime.types file.
  2218.    
  2219.    In DOS and OS/2, Pine looks in the same directory as the PINERC file
  2220.    and the same dir as PINE.EXE. This is similar to the UNIX situation
  2221.    with personal config info coming before potentially shared config
  2222.    data. An alternate search path can be specified by setting
  2223.    mimetype-search-path variable in the user or system-wide configuration
  2224.    or by setting the MIMETYPES environment variable.
  2225.    
  2226.    These files specify file extensions that will be connected to a mime
  2227.    type. Lines beginning with a '#' character are treated as comments and
  2228.    ignored. All other lines are treated as a mime type definition. The
  2229.    first word is a type/subtype specification. All following words are
  2230.    file extensions belonging to that type/subtype. Words are separated by
  2231.    whitespace characters. If a file extension occurs more than once, then
  2232.    the first definition determines the file type and subtype.
  2233.    
  2234.      _________________________________________________________________
  2235.                                       
  2236. Additional Notes on PC-Pine
  2237.  
  2238.    Below are a few odds and ends worth mentioning about PC-Pine. They
  2239.    have to do with DOS-specific behavior that is either necessary or
  2240.    useful (and sometimes both!).
  2241.    
  2242.    As PC-Pine runs in an environment with limited access control,
  2243.    accounting or auditing, an additional line is automatically inserted
  2244.    into the header of mail messages generated by PC-Pine:
  2245.  
  2246.         X-Sender: <userid>@<imap.host>
  2247.  
  2248.    By popular demand of system administrators, PC-Pine has been modified
  2249.    to prevent sending messages until the user has successfully logged
  2250.    into a remote mail server. Even though PC-Pine cannot prevent users
  2251.    from changing the apparent identity of the sender of a message, the
  2252.    IMAP server login name host name included in the X-Sender line provide
  2253.    some level of traceability by the recipient. However, this should not
  2254.    be considered a rigorous form of authentication. It is extremely
  2255.    lightweight, and is not a replacement for true authentication.
  2256.    
  2257.    Hand in hand with authentication and accounting is user information.
  2258.    Since PC-Pine has no user database to consult for user-id,
  2259.    personal-name, etc., necessary information must be provided by the
  2260.    user/installer before PC-Pine can properly construct the "From"
  2261.    address required for outbound messages. PC-Pine will, by default,
  2262.    prompt for the requisite pieces as they are needed. This information
  2263.    corresponds to the PINERC variables user-id, personal-name,
  2264.    user-domain, and smtp-server.
  2265.    
  2266.    The user is then asked whether or not this information should
  2267.    automatically be saved to the PINERC. This is useful behavior in
  2268.    general, but can lead to problems in a lab or other shared
  2269.    environment. Hence, these prompts and automatic saving of
  2270.    configuration can be turned off on an entry by entry basis by setting
  2271.    any of the above values in the PINERC to the null string (i.e., a pair
  2272.    of double quotes). This means that the user will be prompted for the
  2273.    information once during each pine session, and no opportunity to save
  2274.    them in the PINERC will be offered.
  2275.    
  2276.    Along similar lines, a feature allowing automatic login to the
  2277.    imap-server containing the user's INBOX has also been requested. This
  2278.    feature is not enabled by default, but requires the existence of the
  2279.    file named PINE.PWD in the same directory as the PINERC. Even with the
  2280.    existence of this file, the user must still acknowledge a prompt
  2281.    before the password is saved to the file. If PC-Pine is configured to
  2282.    access several different IMAP servers, each password entered will be
  2283.    kept (associated with the corresponding host name) in memory during
  2284.    the current session, and optionally, in the PINE.PWD file for use in
  2285.    subsequent sessions.
  2286.    
  2287.    WARNING! Use this feature with caution! It effectively makes the
  2288.    user's mail no more secure than the physical security of the machine
  2289.    running PC-Pine. What's more, while the password is cloaked by a mild
  2290.    (some might say, feeble) encryption scheme, it is nonetheless sitting
  2291.    in a file on the PC's disk and subject to cracking by anyone with
  2292.    access to it. BEWARE!
  2293.    
  2294.    Another feature of DOS is the lack of standard scratch area for
  2295.    temporary files. During the course of a session, PC-Pine may require
  2296.    numerous temporary files (large message texts, various caches, etc.).
  2297.    Where to create them can be a problem, particularly when running under
  2298.    certain network operating systems. PC-Pine observes the TMP and TEMP
  2299.    environment variables, and creates temporary files in the directory
  2300.    specified by either. In their absence, PC-Pine creates these files in
  2301.    the root of the current working drive.
  2302.    
  2303.    
  2304.  
  2305.                                Behind the Scenes
  2306.                                        
  2307.    Many people ask how certain Pine features are implemented. This
  2308.    section outlines some of the details.
  2309.    
  2310. Address Books
  2311.  
  2312.    The address book file is named, by default, .addressbook in the user's
  2313.    Unix home directory, or in the case of PC-Pine, ADDRBOOK, in the save
  2314.    directory as the PINERC file. There may be more than one address book,
  2315.    and the default name can be over-ridden via an entry in any of the
  2316.    Pine configuration files. The two configuration variables address-book
  2317.    and global-address-book are used to specify the file names of the
  2318.    address books. Each of these variables is a list variable. The total
  2319.    set of address books for a user is the combination of all the address
  2320.    books specified in these two lists. Each entry in the list is an
  2321.    optional nickname followed by a file name. The nickname is everything
  2322.    up to the last space before the file name. The global-address-book
  2323.    list will typically be configured in the system-wide configuration
  2324.    file, though a user may over-ride it like most other variables.
  2325.    Address books which are listed in the global-address-book variable are
  2326.    forced read-only, and are typically shared among multiple users.
  2327.    
  2328.    Address books are simple text files with lines in the format:
  2329.    
  2330.      <nickname>TAB<fullname>TAB<address>TAB<fcc>TAB<comments>
  2331.      
  2332.    The last two fields are optional. A "line" may be made up of multiple
  2333.    actual lines in the file by using continuation lines, which are lines
  2334.    beginning with SPACE characters. The line breaks may be after TABS or
  2335.    in between addresses in a distribution list.
  2336.    
  2337.    Nicknames (the first field) are short names that the user types
  2338.    instead of typing in the full address. There are several characters
  2339.    which aren't allowed in nicknames in order to avoid ambiguity when
  2340.    parsing the address (for example: spaces, commas, "@", ...).
  2341.    
  2342.    The fullname field is usually stored as Last_name, First_name, in
  2343.    order that a sort on the fullname field comes out right. If there is a
  2344.    comma in the fullname, Pine will flip the first and last name around
  2345.    and get rid of the comma when using the entry in a composition. It
  2346.    isn't required that there be a comma, that's only useful if the user
  2347.    wants the entries to sort on last names.
  2348.    
  2349.    The address field takes one of two forms, depending on whether the
  2350.    entry is a single (simple) address or a distribution list. For a
  2351.    simple entry, the address field is the email-address part of the
  2352.    address, i.e., the part that goes inside the brackets (<>). It is
  2353.    combined with the fullname field to form the complete address. For a
  2354.    distribution list, the <address> is in the format:
  2355.    
  2356.      "(" <address>, <address>, <address>, ... ")"
  2357.      
  2358.    Unlike the simple entry case, each of the addresses in a list can be a
  2359.    full RFC 822 address with fullname included, or it may be just the
  2360.    same as in the simple case. This way you can have a list which
  2361.    includes the fullnames of all the list members. In both the simple and
  2362.    list cases, addresses may also be other nicknames which appear in this
  2363.    address book or in one of the other address books. (Those nicknames
  2364.    are searched for by looking through the address books in the order
  2365.    they appear in the address book screen, with the first match winning.)
  2366.    Lists may be nested. If addresses refer to each other in a loop this
  2367.    is detected and flagged. The address will be changed to "**** address
  2368.    loop ****".
  2369.    
  2370.    The optional fcc field is a folder name, just like the fcc field in
  2371.    the composer headers. If the first address in the To field of a
  2372.    composition comes from an address book entry with an fcc field, then
  2373.    that fcc is placed in the fcc header in the composer.
  2374.    
  2375.    The comments field is just a free text field for storing comments
  2376.    about an entry. Neither the fcc nor the comments field is normally
  2377.    shown on the screen in the address book screen. You can only see them
  2378.    by Editing them. You may also search them with the WhereIs command.
  2379.    
  2380.    The address book is displayed in the order that it is sorted in the
  2381.    file. When the user chooses a different sorting criterion, the file is
  2382.    actually sorted, not just the view of the file.
  2383.    
  2384.    When the address book is written out, it is first written to a
  2385.    temporary file and if that write is successful it is renamed
  2386.    correctly. This guards against errors writing the file that might
  2387.    destroy the whole address book. The address book is re-written after
  2388.    each change.
  2389.    
  2390.    The end-of-line character(s) in the address book file are those native
  2391.    to the system writing it. So it is <LF> on Unix and <CR><LF> on PC's.
  2392.    However, both Unix and PC versions of Pine can read either format, so
  2393.    it should be possible to share a read-only address book among the two
  2394.    populations (using NFS, for example). The end-of-line character for
  2395.    the LookUp file is always just <LF>, even on a PC. There is not
  2396.    currently any method built into Pine to access a remote address book
  2397.    (through IMAP or something like that). The only sharing possible is
  2398.    via some external remote file system or copying. It is very likely
  2399.    that a future version of Pine will be able to access remote address
  2400.    books using IMSP, when that becomes standardized and available.
  2401.    
  2402.      _________________________________________________________________
  2403.                                       
  2404.   Address Book Lookup File
  2405.   
  2406.    Starting in 3.90 there is an additional file for each address book,
  2407.    called the LookUp file. It usually has the same name as the address
  2408.    book file with the suffix ".lu" appended. (It might have a different
  2409.    name if a file name length restriction prohibited that name.) This
  2410.    file is created and maintained by Pine. Its purpose is to speed up
  2411.    lookups for large address books and to reduce memory requirements for
  2412.    large address books. A fairly detailed description of how it is used
  2413.    is given in src/pine/adrbklib.h.
  2414.    
  2415.    The lookup file changes whenever the address book itself is changed.
  2416.    If it doesn't exist, Pine attempts to create it. If Pine doesn't have
  2417.    permission to create the lookup file with the standard name, it will
  2418.    create a temporary version in a temp directory. You want to avoid this
  2419.    since it would have to be rebuilt every time Pine was run, and
  2420.    rebuilding takes a significant time for a large address book. So, if
  2421.    you're going to have a shared address book in a read-only directory,
  2422.    it is highly desirable to create the lookup file so that the users
  2423.    sharing it won't have to each create a copy in a temp directory. You
  2424.    can do that by running Pine and accessing the address book under a
  2425.    user id which does have permission to write the file (root, for
  2426.    example) or by using the -create_lu command line argument to Pine (as
  2427.    root, still). If users may be using a shared address book that needs
  2428.    updating, it is best to move the old address book to another name
  2429.    rather than copying over it. It is also best to make the lookup file
  2430.    for the new addrbook before moving it and the address book file into
  2431.    place, otherwise users may get stuck initializing the new file.
  2432.    
  2433.    An effort is made to detect that an address book has been changed by
  2434.    another process. If a change is detected, the address book will be
  2435.    closed down and a new open will be attempted. If the new lookup file
  2436.    is in place when the open is tried, it will work smoothly. In normal
  2437.    operation (lookups and browsing the address book) the check to see if
  2438.    it has changed is just a heuristic to notice if things seem right. It
  2439.    isn't more rigorous because it needs to be fast. When a lookup is
  2440.    done, an offset into the address book is gotten from the LookUp file
  2441.    and a seek into the address book is done. It will check to see if the
  2442.    preceding character is an end-of-line character, which it should be.
  2443.    If it isn't, it figures it needs to rebuild the LookUp file. When an
  2444.    address book is about to be changed, a more fool-proof check is made.
  2445.    Several things in the file are checked to see that it is a LookUp file
  2446.    (magic number, size, ...) and that it is whole. Then, a timestamp in
  2447.    the LookUp file is compared to the mtime of the address book. If the
  2448.    timestamp is later than the mtime, everything is ok, otherwise, the
  2449.    address book has been changed and the new change is aborted.
  2450.    
  2451.    The address book code has been completely rewritten for 3.90 and
  2452.    production experience with shared address books is nil at the time of
  2453.    this writing. We expect there may be some changes as experience is
  2454.    gained, and that some new tools may emerge (scripts to convert
  2455.    password files to shared address books, for example).
  2456.    
  2457.      _________________________________________________________________
  2458.                                       
  2459. Checkpointing
  2460.  
  2461.    Periodically Pine will save the whole mail folder to disk to prevent
  2462.    loss of any mail or mail status in the case that Pine gets
  2463.    interrupted, disconnected, or crashes. The period of time Pine waits
  2464.    to do the checkpoint is calculated to be minimally intrusive. The
  2465.    timing can be changed (but usually isn't) at compile time. Folder
  2466.    checkpointing happens for both local folders and those being accessed
  2467.    with IMAP. The delays are divided into three categories:
  2468.    
  2469.    Good Time: 1.5i
  2470.           This occurs when Pine has been idle for more than 30 seconds.
  2471.           In this case Pine will checkpoint if 12 changes to the file
  2472.           have been made or at least one change has been made and a
  2473.           checkpoint hasn't been done for five minutes.
  2474.    Bad Time: 1.5i
  2475.           This occurs just after Pine has executed some command. Pine
  2476.           will checkpoint if there are 36 outstanding changes to the mail
  2477.           file or at least one change and no checkpoint for ten minutes.
  2478.    Very Bad Time: 1.5i
  2479.           Done when composing a message. In this case, Pine will only
  2480.           checkpoint if at least 48 changes have been made or one change
  2481.           has been made in the last twenty minutes with no checkpoint.
  2482.           
  2483.      _________________________________________________________________
  2484.                                       
  2485. Debug Files
  2486.  
  2487.    If UNIX Pine is compiled with the compiler DEBUG option on (the
  2488.    default), then Pine will produce debugging output to a file. The file
  2489.    is normally .pine-debugX in the user's home directory where X goes
  2490.    from 1 to 4. Number 1 is always the most recent session and 4 the
  2491.    oldest. Four are saved because often the user has gone in and out of
  2492.    Pine a few times after a problem has occurred before the expert
  2493.    actually gets to look at it. The amount of output in the debug files
  2494.    varies with the debug level set when Pine is compiled and/or as a
  2495.    command line flag. The default is level 2. This shows very general
  2496.    things and records errors. Level 9 produces copious amounts of output
  2497.    for each keystroke.
  2498.    
  2499.    PC-Pine creates a single debug file named PINEDEBG.TXT in the same
  2500.    directory as the PINERC file.
  2501.    
  2502.      _________________________________________________________________
  2503.                                       
  2504. Filters
  2505.  
  2506.    Pine is not designed to process email messages as they are delivered;
  2507.    rather Pine depends on the fact that some other program (sendmail,
  2508.    etc) will deliver messages and Pine simply reads the email folders
  2509.    which that "other" program creates. For this reason, Pine cannot
  2510.    filter incoming email into different folders. It can, however, work
  2511.    alongside most of the programs available over the Internet which
  2512.    perform this task. Pine is known to operate successfully with the Elm
  2513.    filter program and with Procmail.
  2514.    
  2515.    Design changes introduced in Pine 3.8x facilitate Pine users filtering
  2516.    email. You still have to get a filtering program and configure it
  2517.    correctly, but Pine now allows users to specify a set of
  2518.    incoming-folders. Pine will separate out all the folders listed as
  2519.    incoming-folders and offer convenient access to these. We hope that in
  2520.    the future Pine will be able to offer new message counts for all of
  2521.    the incoming folders.
  2522.    
  2523.      _________________________________________________________________
  2524.                                       
  2525. Folder Formats and Name Extensions
  2526.  
  2527.    A folder is a group of messages. The default format used by Unix Pine
  2528.    is the Berkeley mail format. It is also used by the standard mail
  2529.    command and by elm. Unix Pine also understands message folders in
  2530.    other formats, such as Tenex, MH, MMDF, Carmel, and Netnews. (For more
  2531.    information about the carmel format, see the directory
  2532.    ./contrib/carmel in the Pine distribution.)
  2533.    
  2534.    PC-Pine reads and writes local (PC) folders in a special format
  2535.    similar to the Tenex format. Near as we can tell, PC-Pine is the only
  2536.    program to use this format. Beginning with version 3.90, PC-Pine
  2537.    includes a Read-Only driver for the Berkeley mailbox format in
  2538.    addition. That means that you can import Unix mail folders, or mount
  2539.    them via NFS or SMB, and PC-Pine can read them --but not modify them.
  2540.    
  2541.    Extensions. In the past, file name extensions have been significant in
  2542.    both Unix Pine and PC-Pine, but this has caused more problems than it
  2543.    solved. Therefore, on Unix Pine extensions no longer have any special
  2544.    meaning, and this is the trend for PC-Pine as well.
  2545.    
  2546.    By default, PC-Pine adds ".MTX" to the name of any local (PC) folders
  2547.    that are referenced, and suppresses the extension from the Folder List
  2548.    display. Now that PC-Pine can read more than one folder format, the
  2549.    MTX extension no longer implies a particular format, and is largely
  2550.    irrelevant. By using the "folder_extension" option, you can change
  2551.    this behavior. In particular, you may set "folder-extension" to the
  2552.    "null string" which tells PC-Pine to neither add nor hide-from-view
  2553.    *any* folder name extension.
  2554.    
  2555.    The reason you might wish to over-ride the MTX default is that recent
  2556.    versions of PC-Pine have the ability to open (albeit READ-ONLY) normal
  2557.    Unix mail folders. Since it might be inconvenient to rename all of
  2558.    them to have an MTX extension, it is possible with this option to
  2559.    switch PC-Pine's behavior so that such folders can be seen and
  2560.    accessed without changing their names. However, doing this means that
  2561.    your existing PC-Pine local folders will have apparently changed their
  2562.    names. For example, if you had a local folder named "FOO" it will now
  2563.    appear in the Folder List as "FOO.MTX". If you wish to save additional
  2564.    messages to that folder, you will need to enter the full name,
  2565.    "FOO.MTX" at the Save prompt. Likewise for GOTO.
  2566.    
  2567.    If you wish to permanently avoid having to deal with folder name
  2568.    extensions, you will need to set this option to the null string by
  2569.    entering two double- quote marks, and you will need to rename your
  2570.    existing local folders to not have an MTX extension. In DOS this can
  2571.    be done in one command, once you have changed to your mail directory:
  2572.    RENAME *.MTX *.
  2573.    
  2574.    We don't know why you might wish to, but you could also use this
  2575.    option to tell PC-Pine to use an extension other than MTX. In this
  2576.    case, enter the three characters you desire to use in lieu of "MTX".
  2577.    Note that your existing folders will need to be renamed to correspond
  2578.    to this new extension.
  2579.    
  2580.    Berkeley Mail Format
  2581.           This format comes to us from the ancient UNIX mail program,
  2582.           /bin/mail. (Note that this doesn't have anything to do with
  2583.           Berkeley, but we call it the Berkeley mail file format anyway.)
  2584.           This program was actually used to interactively read mail at
  2585.           one time, and is still used on many systems as the local
  2586.           delivery agent. In the Berkeley mail format, a folder is a
  2587.           simple text file. Each message (including the first) must start
  2588.           with a separator line which takes approximately the form:
  2589.           
  2590.      From juser@u.example.edu Wed Aug 11 14:32:33 1993
  2591.    
  2592.           Each message ends with two blank lines. There are actually
  2593.           several different variations in the date part of the string,
  2594.           twenty at last count. Because of the format of the separators,
  2595.           lines in the mail message beginning with "From ", space
  2596.           included, risk being confused as message separator lines. Some
  2597.           mail programs will interpret any line beginning with "From " as
  2598.           a message separator, while others --including Pine-- will not
  2599.           be confused unless the line really looks like a message
  2600.           separator, complete with address and date. Such lines will be
  2601.           modified to begin with ">From ". In deference to other mail
  2602.           programs, you may also set the "save-will-quote-leading-froms"
  2603.           feature, in which case any line beginning with "From " will be
  2604.           modified as above. If you see this occasionally in incoming
  2605.           mail messages, the culprit is not Pine but the message delivery
  2606.           program being used at your site.
  2607.           You can fool Pine into thinking a file is a mail folder by
  2608.           copying a suitable message separator from a real folder to the
  2609.           beginning of the file and wherever you want message boundaries.
  2610.           The vast majority of INBOXes Pine reads and folders it writes
  2611.           are of this format.
  2612.    Tenex and MTX Formats
  2613.           Like the Berkeley format, the Tenex folder format uses a single
  2614.           file per folder. Historically, the name of Tenex-format folders
  2615.           ended with .txt, but this rule is no longer enforced. The file
  2616.           format consists of a header line followed by the message text
  2617.           for each message. The header is in one of two forms:
  2618.           
  2619.      dd-mmm-yy hh:mm:ss-zzz,n;ffffffffffff
  2620.      dd-mmm-yyyy hh:mm:ss sssss,n;ffffffffffff
  2621.    
  2622.           and is immediately followed by a newline (and the message
  2623.           text).
  2624.           
  2625.      The fields in the formats are:
  2626.      dd two-digit day of month (leading space if a single-digit day)
  2627.      mmm three-letter English month name (Jan, Feb, etc.)
  2628.      yy two-digit year in 20th century (obsolete)
  2629.      yyyy four-digit year
  2630.      hh two-digit hour in 24-hour clock (leading zero if single-digit)
  2631.      mm two-digit minute (leading zero)
  2632.      ss two-digit second (leading zero)
  2633.      zzz three-letter North American time zone (obsolete)
  2634.      sssss signed four-digit international time zone as in RFC 822
  2635.      n one or more digits of the size of the following message in
  2636.      bytes
  2637.      ffffffffffff
  2638.      twelve-digit octal flags value
  2639.           Punctuation is as given above.
  2640.    
  2641.           The time in the header is the time that message was written to
  2642.           the folder. The flags are interpreted as follows: the high
  2643.           order 30 bits are used to indicate user flags, the next two
  2644.           bits are reserved for future usage, the low four bits are used
  2645.           for system flags (010 = answered, 04 = flagged urgent, 02 =
  2646.           deleted, 01 = seen).
  2647.    
  2648.           If a Tenex-format (or empty) file named mail.txt exists in a
  2649.           Pine user's home directory, this triggers special processing in
  2650.           Pine. When INBOX is opened, mail is automatically moved from
  2651.           /usr/spool/mail into mail.txt in the user's home directory.
  2652.    
  2653.           The format used by PC-Pine is identical to the Tenex format,
  2654.           with two exceptions: the folder name ends with .MTX instead of
  2655.           .txt (this is a requirement in the MTX format), and DOS-style
  2656.           CR/LF newlines are used instead of UNIX-style LF newlines.
  2657.    Netnews Format
  2658.           The netnews format is a read-only format which uses directories
  2659.           under /usr/spool/news as folders. The /usr/spool/news/ prefix
  2660.           is removed and all subsequent ``/'' (slash) characters are
  2661.           changed to ``.'' (period). For example, the netnews folder name
  2662.           comp.mail.misc refers to the directory name
  2663.           /usr/spool/news/comp/mail/misc. In addition, the news folder
  2664.           name must appear in the file /usr/lib/news/active for it to be
  2665.           recognized. Individual messages are stored as files in that
  2666.           directory, with file names being the ASCII form of a number
  2667.           assigned to that message.
  2668.           
  2669.      _________________________________________________________________
  2670.                                       
  2671. Folder Locking
  2672.  
  2673.    There are two kinds of locking which Pine has to worry about. The
  2674.    first might be called program-contention locking. This affects the
  2675.    times when a program is performing actual updates on a folder. An
  2676.    update might be a message delivery program appending a message
  2677.    (sendmail delivering a message to an INBOX), status changes
  2678.    (checkpoints by Pine every few minutes) or deletion of messages (an
  2679.    expunge in Pine). For moderate sized mail messages, these operations
  2680.    should not last for more than a few seconds. The second kind of
  2681.    locking has to do with user-contention situations. This would be the
  2682.    case when one folder is shared by a group of people or even when one
  2683.    person starts multiple email sessions all of which access the same
  2684.    folders and INBOX.
  2685.    
  2686.    There are two standard locking mechanisms which handle
  2687.    program-contention locking. To be on the safe side, Pine implements
  2688.    both of them. The older mechanism places a file xxxx.lock (where xxxx
  2689.    is the name of the file being locked) in the same directory as the
  2690.    file being locked. This makes use of the fact that directory
  2691.    operations are atomic in UNIX and mostly works across NFS. There are
  2692.    involved algorithms used to determine if a lock has been held for an
  2693.    excessive amount of time and should be broken. The second
  2694.    program-contention locking mechanism uses the flock() system call on
  2695.    the mailbox. This is much more efficient and the locks can't get stuck
  2696.    because they go away when the process that created them dies. This is
  2697.    usually found on 4BSD and related machines.
  2698.    
  2699.    In addition to these, Pine--through the c-client library--provides
  2700.    robust locking which prevents several users (or several instances of
  2701.    the same user) having a mail file open (for update) at once. This
  2702.    user-contention lock is held the entire time that the folder is in
  2703.    use.
  2704.    
  2705.    With IMAPd 7.3(63) and Pine 3.84 and higher, the second Pine session
  2706.    which attempts to open a particular folder (usually INBOX) with Pine
  2707.    will ``win''and That is to say, the second session will have
  2708.    read/write access to the folder. The first user's folder will become
  2709.    read-only. (Note that this is exactly the opposite of the behavior
  2710.    prior to Pine 3.84 where the second open was read-only. Having the
  2711.    latest open be read-write seems to match more closely with what users
  2712.    would like to have happen in this situation.) Pine's additional
  2713.    locking is only effective against multiple uses of Pine or other
  2714.    programs using the c-client library, such as MailManager, ms, IMAPd
  2715.    and a few others. Beginning with Pine 3.85, there is an -o command
  2716.    line flag to intentionally open a mailbox read-only.
  2717.    
  2718.    Pine locking on UNIX systems works by creating lock files in /tmp of
  2719.    the form \usr\spool\mail\joe. The system call flock() is then used on
  2720.    these files; the existence of the file alone does not constitute a
  2721.    lock. This lock is created when the folder is opened and destroyed
  2722.    when it is closed. When the folder is actually being written, the
  2723.    standard UNIX locks are also created.
  2724.    
  2725.    If a folder is modified by some other program while Pine has it open,
  2726.    Pine will give up on that mail file, concluding it's best not to do
  2727.    any further reads or writes. This can happen if another mailer that
  2728.    doesn't observe Pine's user-contention locks (e.g. elm or mail) is run
  2729.    while Pine has the mail folder open. Pine checkpoints files every few
  2730.    minutes, so little data can be lost in these situations.
  2731.    
  2732.    PC-Pine does not do any folder locking. It depends on IMAP servers to
  2733.    handle locking of remote folders. It is assumed that only one Pine
  2734.    session can be running on the PC at a time, so there is no contention
  2735.    issue around folders on the PC itself.
  2736.    
  2737.      _________________________________________________________________
  2738.                                       
  2739. INBOX and Special Folders
  2740.  
  2741.    The INBOX folder is treated specially. It is normally kept open
  2742.    constantly so that the arrival of new mail can be detected. The name
  2743.    INBOX refers to wherever new mail is retrieved on the system. If the
  2744.    inbox-path variable is set, then INBOX refers to that. IMAP servers
  2745.    understand the concept of INBOX, so specifying the folder
  2746.    {imap.u.example.edu}INBOX is meaningful. The case of the word INBOX is
  2747.    not important, but Pine tends to display it in all capital letters.
  2748.    
  2749.    The folders for sent mail and saved messages folders are also somewhat
  2750.    special. They are automatically created if they are absent and
  2751.    recreated if they are deleted.
  2752.    
  2753.      _________________________________________________________________
  2754.                                       
  2755. Internal Help Files
  2756.  
  2757.    The file pine.hlp in the pine subdirectory of the distribution
  2758.    contains all the help text for Pine. On UNIX, it is compiled right
  2759.    into the Pine binary as strings. This is done to simplify installation
  2760.    and configuration. The pine.hlp file is in a special format that is
  2761.    documented at the beginning of the file. It is divided into sections,
  2762.    each with a name that winds up being referenced as a global variable.
  2763.    Some special formatting rules are used to keep things lined up and to
  2764.    allow for substitutions in the help text depending on whether the Pine
  2765.    session uses function keys or the standard alphabetic/mnemonic keys.
  2766.    This file is processed by two awk scripts and turned into C files that
  2767.    are compiled into Pine.
  2768.    
  2769.    This scheme can increase efficiency because Pine can be compiled to
  2770.    have the strings as part of shared, read-only text. Rather than each
  2771.    process having to read in the help text from a file, the strings are
  2772.    shared by all executing processes on the machine and demand paged.
  2773.    This works on machines that have separate instruction and data space,
  2774.    but is only fully implemented in the NeXT (tested) and Dynix (not
  2775.    tested) ports.
  2776.    
  2777.    PC-Pine, which tries to run on machines with as little as 640k of
  2778.    memory, leaves the Pine help text out of the executable. PINE.EXE,
  2779.    PINE.HLP, and PINE.NDX are all needed for PC-Pine's help system.
  2780.    
  2781.      _________________________________________________________________
  2782.                                       
  2783. International Character Sets
  2784.  
  2785.    While Pine was designed in the U.S. and used mostly for
  2786.    English-language correspondence, it is a goal for Pine to handle email
  2787.    in almost any language. Many sites outside of the U.S. run Pine in
  2788.    their native language. The default character set for Pine is US-ASCII.
  2789.    That can be changed in the personal or system-wide configuration file
  2790.    with the variable character-set.
  2791.    
  2792.    When reading incoming email, Pine allows all character sets to pass
  2793.    through. Pine doesn't actually display the characters but simply
  2794.    passes them through; it is up to the actual display device to show the
  2795.    characters correctly. When composing email, Pine will accept input in
  2796.    any language and tag the message according to the character-set
  2797.    variable. Again, it is up to the input device to generate the correct
  2798.    sequences for the character set being used.
  2799.    
  2800.    With the exception of UNICODE-1-1-UTF-7, the outgoing message is
  2801.    checked to see if it is all US-ASCII text (and contains no escape
  2802.    characters). In that case, the text will be labeled as US-ASCII even
  2803.    if the character-set variable is set to something else. The theory is
  2804.    that every reasonable character set will have US-ASCII as a subset,
  2805.    and that it makes sense to label the text with the
  2806.    lowest-common-denominator label so that more mailers will be able to
  2807.    display it.
  2808.    
  2809.    Text in the UNICODE-1-1-UTF-7 character set is never re-labelled as
  2810.    US-ASCII. BUG: If you prepare a UNICODE-1-1 document and read it into
  2811.    the composer with ^R, Pine will mistreat it. If your document, when
  2812.    misviewed as 8-bit bytes, does not contain any individual bytes
  2813.    greater than 0x7f base 16, then pine will re-label your outgoing
  2814.    message as US-ASCII, even if your message is really in Unicode
  2815.    Cyrillic, Arabic, or Thai. On the other hand, if your UNICODE-1-1,
  2816.    when misviewed as 8-bit bytes, does contain at least one individual
  2817.    byte greater than 0x7f base 16, as is likely for Unicode
  2818.    French/German/Spanish, Greek, Japanese, and Chinese, then pine will
  2819.    retain the UNICODE-1-1 label.
  2820.    
  2821.    The character sets are:
  2822.    
  2823.      US-ASCII Standard 7 bit English characters
  2824.      ISO-8859-1 8 bit European "latin 1" character set
  2825.      ISO-8859-2 8 bit European "latin 2" character set
  2826.      ISO-8859-3 8 bit European "latin 3" character set
  2827.      ISO-8859-4 8 bit European "latin 4" character set
  2828.      ISO-8859-5 8 bit Latin and Cyrillic
  2829.      ISO-8859-6 8 bit Latin and Arabic
  2830.      ISO-8859-7 8 bit Latin and Greek
  2831.      ISO-8859-8 8 bit Latin and Hebrew
  2832.      ISO-8859-9 8 bit European "latin 5" character set
  2833.      ISO-8859-10 8 bit European "latin 6" character set
  2834.      KOI8-R 8 bit Latin and Russian
  2835.      VISCII 8 bit Latin and Vietnamese
  2836.      ISO-2022-JP Latin and Japanese
  2837.      ISO-2022-KR Latin and Korean
  2838.      UNICODE-1-1 Unicode
  2839.      UNICODE-1-1-UTF-7 Mail-safe Unicode
  2840.      ISO-2022-JP-2 Multilingual
  2841.      
  2842.    Earlier versions of Pine made use of the character set tags associated
  2843.    with text in MIME to decide if the text should be displayed or not.
  2844.    Depending on the character set tag and the character-set variable in
  2845.    Pine, the text was either displayed as is, displayed with some
  2846.    characters filtered out, or not displayed at all. The current version
  2847.    uses a much simpler algorithm in order to maximize the chance that
  2848.    useful contents are readable by the user. It simply displays all
  2849.    messages of type text and makes no attempt to filter out characters
  2850.    that may be in the wrong character set. If the text is tagged as
  2851.    something other than US-ASCII and the tag does not match the character
  2852.    set that the character-set variable is set to, then a warning is
  2853.    printed at the start of the message. In that case, it is possible that
  2854.    the text will be displayed incorrectly. For example, if the text is
  2855.    one variant of ISO-8859 and the display device is another variant,
  2856.    some of the characters may show up on the screen as the wrong
  2857.    character. Or if the text is Japanese and the display device is not,
  2858.    some parts of the message may be total gibberish (which will look like
  2859.    ASCII gibberish). On the other hand, the parts of the Japanese message
  2860.    that really are US-ASCII will be readable in the midst of the
  2861.    gibberish.
  2862.    
  2863.    In the case of PC-Pine, the character values cannot be passed through
  2864.    to the display device unaltered since MS-DOS uses various non-standard
  2865.    character sets called "Code Pages".
  2866.    
  2867.    The mapping between DOS Code Page and standard character set is
  2868.    controlled by the "character-set" variable in the PINERC file and the
  2869.    PC's installed Code Page. PC-Pine will automatically map common
  2870.    characters in IBM Code Pages 437, 850, 860, 863, and 865 to ISO-8859-1
  2871.    and back when the PINERC has "character-set=ISO-8859-1". Pine will
  2872.    also map common characters for IBM Code Page 866 to ISO-8859-5 and
  2873.    back when "character-set=ISO-8859-5". The mappings are bi-directional,
  2874.    and applied to all saved text attachments in the defined character
  2875.    set, messages exported, etc.
  2876.    
  2877.    Alternatively, the translation tables can be configured externally and
  2878.    applied at run time whenever the "character-set=" variable is set to
  2879.    something other then "US-ASCII" (the default). PC-Pine looks in the
  2880.    text file pointed to by the environment variable "ISO_TO_CP" for the
  2881.    table to use for mapping text matching the type defined by the
  2882.    "character-set=" variable into the local Code Page value. PC-Pine
  2883.    looks in the text file pointed to by the environment variable
  2884.    "CP_TO_ISO" for the table to use for mapping text in the local Code
  2885.    Page into outbound text tagged with the "character-set=" variable's
  2886.    value.
  2887.    
  2888.    A text file containing a character set mapping table is expected to
  2889.    contain 256 elements where each element is a decimal number separated
  2890.    from the next element by white-space (space, tab or newline, but no
  2891.    commas!). The index of the element is the character's value in the
  2892.    source character set, and the element's value is the corresponding
  2893.    character's value in the destination character set.
  2894.    
  2895.      _________________________________________________________________
  2896.                                       
  2897. Interrupted and Postponed Messages
  2898.  
  2899.    If the user is composing mail and is interrupted by being disconnected
  2900.    (SIGHUP, SIGTERM or end of file on the standard input), Pine will save
  2901.    the interrupted composition and allow the user to continue it when he
  2902.    or she resumes Pine. As the next Pine session starts, a message will
  2903.    be given that an interrupted message can be continued. To continue the
  2904.    interrupted message, simply go into the composer. To get rid of the
  2905.    interrupted message, go into the composer and then cancel the message
  2906.    with ^C.
  2907.    
  2908.    Composition of half-done messages may be postponed to a later time by
  2909.    giving the ^O command. Other messages can be composed while postponed
  2910.    messages wait. All of the postponed messages are kept in a single
  2911.    folder. Postponing is a good way to quickly reference other messages
  2912.    while composing.
  2913.    
  2914.      _________________________________________________________________
  2915.                                       
  2916. Message Status
  2917.  
  2918.    The c-client library allows for several flags or status marks to be
  2919.    set for each message. Pine uses four of these flags: UNSEEN, DELETED,
  2920.    ANSWERED, and FLAGGED. The "N" in Pine's FOLDER INDEX means that a
  2921.    message is unseen-it has not been read from this folder yet. The "D"
  2922.    means that a message is marked for deletion. Messages marked with "D"
  2923.    are removed when the user expunges the folder (which usually happens
  2924.    when the folder is closed or the user quits Pine). The "A" in Pine's
  2925.    FOLDER INDEX means that the message has been replied-to. The "*" in
  2926.    Pine's FOLDER INDEX means that the message has been ``flagged'' as
  2927.    important. That is, the user used the Flag command to turn the FLAGGED
  2928.    flag on. This flag can mean whatever the user wants it to mean. It is
  2929.    just a way to mark some messages as being different from others. It
  2930.    will usually probably be used to mark a message as somehow being
  2931.    ``important''. For Berkeley format folders, the message status is
  2932.    written into the email folder itself on the header lines marked
  2933.    Status: and X-Status. In Tenex and PC-Pine's MTX folder formats, the
  2934.    status goes into the 36-bit octal flags.
  2935.    
  2936.      _________________________________________________________________
  2937.                                       
  2938. MIME: Reading a Message
  2939.  
  2940.    Pine should be able to handle just about any MIME message. When a MIME
  2941.    message is received, Pine will display a list of all the parts, their
  2942.    types and sizes. It will display the attachments when possible and
  2943.    appropriate and allow users to save all other attachments.
  2944.    
  2945.    Starting with version 3.90, Pine honors the "mailcap" configuration
  2946.    system for specifying external programs for handling attachments. The
  2947.    mailcap file maps MIME attachment types to the external programs
  2948.    loaded on your system which can display and/or print the file. A
  2949.    sample mailcap file comes bundled with the Pine distribution. It
  2950.    includes comments which explain the syntax you need to use for
  2951.    mailcap. With the mailcap file, any program (mail readers,
  2952.    newsreaders, WWW clients) can use the same configuration for handling
  2953.    MIME-encoded data.
  2954.    
  2955.    If a $MAILCAPS environment variable is defined, Pine will use that to
  2956.    look for one or more mailcap files, which are combined. In the absence
  2957.    of $MAILCAPS, Unix Pine will look for a personal mailcap file in
  2958.    ~/.mailcap and combine that with a system-wide file in /etc/mailcap.
  2959.    PC-Pine will look for a file named MAILCAP in the same directory as
  2960.    the PINERC file, and/or the directory containing the PINE.EXE
  2961.    executable.
  2962.    
  2963.    Messages which include rich text or enriched text in the main body
  2964.    will be displayed in a very limited way (it will show bold and
  2965.    underlining).
  2966.    
  2967.    If Pine sees a MIME message part tagged as type IMAGE, and Pine's
  2968.    image-viewer. configuration variable is set, Pine will attempt to send
  2969.    that attachment to the named image viewing program. In the case of
  2970.    UNIX Pine, the DISPLAY environment variable is checked to see if an
  2971.    X-terminal is being used (which can handle the images). If the
  2972.    image-viewer variable is not set, Pine uses the mailcap system to
  2973.    determine what to do with IMAGE types, just as it does for any other
  2974.    non-TEXT type, e.g. type APPLICATION. For MIME's generic "catch all"
  2975.    type, APPLICATION/OCTET-STREAM, the mailcap file will probably not
  2976.    specify any action, but Pine users may always Save any MIME attachment
  2977.    to a file.
  2978.    
  2979.    MIME type "text/plain" is handled a little bit differently than the
  2980.    other types. If you are viewing the main body part in the MESSAGE TEXT
  2981.    viewing screen, then Pine will use its internal viewer to display it.
  2982.    This happens even if there is a mailcap description which matches this
  2983.    particular type. If it is labelled as having a character set other
  2984.    than the one you are using, it will still be displayed by the internal
  2985.    viewer (perhaps incorrectly), though you will get a warning message
  2986.    prepended to the message in the viewing screen. However, if you view a
  2987.    part of type "text/plain" from the ATTACHMENT INDEX screen, then Pine
  2988.    will check the mailcap database for a matching entry and use it in
  2989.    preference to its internal viewer.
  2990.    
  2991.    Some text attachments, specifically those which are just other email
  2992.    messages forwarded as MIME messages, are displayed as part of the main
  2993.    body of the message. This distinction allows easy display when
  2994.    possible (the forward as MIME case) and use of an attachment viewer
  2995.    when that is desirable (the plain text file attachment case).
  2996.    
  2997.    If the parts of a multipart message are alternate versions of the same
  2998.    thing Pine will select and display the one best suited. For parts of
  2999.    type "message/external-body", the parameters showing the retrieval
  3000.    method will be displayed, but the retrieval process is not yet
  3001.    automated. Messages of type "message/partial" are not currently
  3002.    supported.
  3003.    
  3004.      _________________________________________________________________
  3005.                                       
  3006. MIME: Sending a Message
  3007.  
  3008.    There are two important factors when trying to include an attachment
  3009.    in a message: encoding and labeling. Pine has rules for both of these
  3010.    which try to assure that the message goes out in a form that is robust
  3011.    and can be handled by other MIME mail readers.
  3012.    
  3013.    MIME has two ways of encoding data-Quoted-Printable and Base64.
  3014.    Quoted-Printable leaves the ASCII text alone and only changes 8-bit
  3015.    characters to "=" followed by the hex digits. For example, "=09" is a
  3016.    tab. It has the advantage that it is mostly readable and that it
  3017.    allows for end of line conversions between unlike systems. Base64
  3018.    encoding is similar to uuencode or btoa and just encodes a raw bit
  3019.    stream. This encoding is designed to get text and binary files through
  3020.    even the most improperly implemented and configured gateways intact,
  3021.    even those that distort uuencoded data.
  3022.    
  3023.    All attachments are encoded using Base64 encoding. This is so that the
  3024.    attachment will arrive at the other end looking exactly like it did
  3025.    when it was sent. Since Base64 is completely unreadable except by
  3026.    MIME-capable mailers or programs, there is an obvious tradeoff being
  3027.    made here. We chose to ensure absolutely reliable transport of
  3028.    attachments at the cost of requiring a MIME-capable mailer to read
  3029.    them. If the user doesn't want absolute integrity he or she may always
  3030.    include text (with the ^R command) in the body of a message instead of
  3031.    attaching it. With this policy, the only time quoted-printable
  3032.    encoding is used is when the main body of a message includes special
  3033.    foreign language characters.
  3034.    
  3035.    When an attachment is to be sent, Pine sniffs through it to try to set
  3036.    the right label (content-type and subtype). An attachment with any
  3037.    lines longer than 500 characters in it or more than 10% of the
  3038.    characters are 8-bit it will be considered binary data. Pine will
  3039.    recognize (and correctly label) a few special types including GIF,
  3040.    JPEG, PostScript, and some audio formats.
  3041.    
  3042.    If it is not binary data (has only a small proportion of 8-bit
  3043.    characters in it,) the attachment is considered 8-bit text. 8-bit text
  3044.    attachments are labeled "text/plain" with charset set to the value of
  3045.    the user's character-set variable. If an attachment is ASCII (no 8-bit
  3046.    characters) and contains no ESCAPE, ^N, or ^O characters (the
  3047.    characters used by some international character sets), then it is
  3048.    considered plain ASCII text. Such attachments are given the MIME label
  3049.    "text/plain; charset=US-ASCII", regardless of the setting of the
  3050.    user's character-set variable.
  3051.    
  3052.    All other attachments are unrecognized and therefore given the generic
  3053.    MIME label "application/octet-stream".
  3054.    
  3055.      _________________________________________________________________
  3056.                                       
  3057. New Mail Notification
  3058.  
  3059.    Pine checks for new mail in the INBOX and in the currently open folder
  3060.    at least every two and a half minutes. It used to be 30 seconds
  3061.    instead of 150 seconds, but we increased it in order to reduce the
  3062.    load on large systems with lots of Pine users. The value can be
  3063.    changed at compile-time in the pine/os.h file. If you really don't
  3064.    want to wait you can force a new mail check by pressing N Next with
  3065.    the cursor on the last message of the message index or by redrawing
  3066.    the screen with a ^L.
  3067.    
  3068.    When there is new mail, the message(s) will appear in the index, the
  3069.    screen will beep, and a notice showing the sender and subject will be
  3070.    displayed. If there has been more than one new message since you last
  3071.    issued a command to Pine, the notice will show the count of new
  3072.    messages and the sender of the most recent one.
  3073.    
  3074.    Questions have arisen about the interaction between Pine and external
  3075.    mail notification routines (biff, csh, login). Firstly and
  3076.    unfortunately, we have found no PC based program that will check for
  3077.    email on an IMAP server when PC-Pine is not running. If you find one,
  3078.    please tell us.
  3079.    
  3080.    The UNIX case is more complicated. Pine sets the modification and
  3081.    access time on a file every time it performs a write operation (status
  3082.    change or expunge). You need to see which of these your email
  3083.    notification program is looking at to know how it will behave with
  3084.    Pine.
  3085.    
  3086.      _________________________________________________________________
  3087.                                       
  3088. NFS
  3089.  
  3090.    It is possible to access mail folders on NFS mounted volumes with
  3091.    Pine, but there are some drawbacks to doing this, especially in the
  3092.    case of incoming-message folders that may be concurrently updated by
  3093.    Pine and the system's mail delivery agent. One concern is that Pine's
  3094.    user-contention locks don't work because /tmp is usually not shared,
  3095.    and even if it was, flock() doesn't work across NFS.
  3096.    
  3097.    The implementation of the standard UNIX ".lock" file locking has been
  3098.    modified to work with NFS as follows. Standard hitching post locking
  3099.    is used so first a uniquely named file is created, usually something
  3100.    like xxxx.host.time.pid. Then a link to it is created named xxxx.lock
  3101.    where the folder being locked is xxxx. This file constitutes the lock.
  3102.    This is a standard UNIX locking scheme. After the link returns, a
  3103.    stat(2) is done on the file. If the file has two links, it is
  3104.    concluded that the lock succeeded and it is safe to proceed.
  3105.    
  3106.    In order to minimize the risks of locking failures via NFS, we
  3107.    strongly recommend using IMAP rather than NFS to access remote
  3108.    incoming message folders, e.g. your INBOX. However, it is generally
  3109.    safe to access personal saved-message folders via NFS since it is
  3110.    unlikely that more than one process will be updating those folders at
  3111.    any given time. Still, some problems may occur when two Pine sessions
  3112.    try to access the same mail folder from different hosts without using
  3113.    IMAP. Imagine the scenario: Pine-A performs a write that changes the
  3114.    folder. Pine-B then attempts to perform a write on the same folder.
  3115.    Pine-B will get upset that the file has been changed from underneath
  3116.    it and abort operations on the folder. Pine-B will continue to display
  3117.    mail from the folder that it has in its internal cache, but it will
  3118.    not read or write any further data. The only thing that will be lost
  3119.    out of the Pine-B session when this happens is the last few status
  3120.    changes.
  3121.    
  3122.    If other mail readers besides Pine are involved, all bets are off.
  3123.    Typically, mailers don't take any precautions against a user opening a
  3124.    mailbox more than once and no special precautions are taken to prevent
  3125.    NFS problems.
  3126.    
  3127.      _________________________________________________________________
  3128.                                       
  3129. Printers and Printing
  3130.  
  3131.    UNIX Pine can print to the standard UNIX line printers or to generic
  3132.    printers attached to ANSI terminals using the escape sequences to turn
  3133.    the printer on and off. The user has a choice of three printers in the
  3134.    configuration.
  3135.    
  3136.    The first setting, attached-to-ansi, makes use of escape sequences on
  3137.    ANSI/VT100 terminals. It uses "<ESC>[5i" to begin directing all output
  3138.    sent to the terminal to the printer and then "<ESC>[6i" to return to
  3139.    normal. Pine will send these escape sequences if the printer is set to
  3140.    attached-to-ansi. This works with most ANSI/VT100 emulators on Macs
  3141.    and PCs such as kermit, NCSA telnet, VersaTerm Pro, and WinQVT.
  3142.    Various terminal emulators implement the print feature differently.
  3143.    For example, NCSA telnet requires "capfile = PRN" in the config.tel
  3144.    file. Attached-to-ansi printing doesn't work at all with the telnet
  3145.    provided with PC-NFS.
  3146.    
  3147.    The second selection is the standard UNIX print command. The default
  3148.    is lpr, but it can be changed on a system basis to anything so desired
  3149.    in /usr/local/lib/pine.conf.
  3150.    
  3151.    The third selection is the user's personal choice for a UNIX print
  3152.    command. The text to be printed is piped into the command. Enscript or
  3153.    lpr with options are popular choices. The actual command is retained
  3154.    even if one of the other print selections is used for a while.
  3155.    
  3156.    If you have a PostScript printer attached to a PC or Macintosh, then
  3157.    you will need to use a utility called ansiprt to get printouts on your
  3158.    printer. Ansiprt source code and details can be found in the ./contrib
  3159.    directory of the Pine distribution.
  3160.    
  3161.    The three printer choices are for UNIX Pine only. PC-Pine for DOS can
  3162.    only print to the locally attached printer. All printing on PC-Pine
  3163.    (DOS) is done via ROM BIOS Print Services (Int 17h). After verifying
  3164.    the existence of a local printer via the BIOS Equipment-List Service
  3165.    (Int 11h), it simply sends the message text, character by character,
  3166.    to the first printer found using ASCII CR and LF at the end of lines
  3167.    and followed by an ASCII FF. Note, some system adjustments using the
  3168.    PC's "MODE" command may be required if the printer is not on the first
  3169.    parallel port. PC-Pine cannot generate PostScript, so printing to
  3170.    exclusively PostScript printers does not work.
  3171.    
  3172.    PC-Pine for Winsock uses the MS-Windows printer interface. A Pine
  3173.    print command will bring up a standard MS-Windows printer dialog box.
  3174.    
  3175.      _________________________________________________________________
  3176.                                       
  3177. Save and Export
  3178.  
  3179.    Pine users get two options for moving messages in Pine: save and
  3180.    export. Save is used when the message should remain ``in the Pine
  3181.    realm.'' Saved messages include the complete header (including header
  3182.    lines normally hidden by Pine), are placed in a Pine folder collection
  3183.    and accumulate in a standard folder format which Pine can read. In
  3184.    contrast, the export command is used to write the contents of a
  3185.    message to a file for use outside of Pine. Messages which have been
  3186.    exported are placed in the user's home directory (unless the feature
  3187.    use-current-dir is turned on), not in a Pine folder collection. Unless
  3188.    FullHeaderMode is toggled on, all delivery-oriented headers are
  3189.    stripped from the message. Even with export, Pine retains message
  3190.    separators so that multiple messages can accumulate in a single file
  3191.    and subsequently be accessed as a folder. On UNIX systems, the export
  3192.    command pays attention to the standard umask for the setting of the
  3193.    file permissions.
  3194.    
  3195.      _________________________________________________________________
  3196.                                       
  3197. Sent Mail
  3198.  
  3199.    Pine's default behavior is to keep a copy of each outgoing message in
  3200.    a special "sent mail" folder. This folder is also called the fcc for
  3201.    "file carbon copy". The existence, location and name of the sent mail
  3202.    folder are all configurable. Sent mail archiving can be turned off by
  3203.    setting the configuration variable default-fcc="". The sent mail
  3204.    folder is assumed to be in the default collection for saves, which is
  3205.    the first collection named in folder-collections. The name of the
  3206.    folder can be chosen by entering a name in default-fcc. With PC-Pine,
  3207.    this can be a bit complicated. If the default collection for saves is
  3208.    local (DOS), then the default-fcc needs to be "SENTMAIL", which is
  3209.    syntax for a DOS file. However, if the default collection for saves is
  3210.    remote, then the default-fcc needs to be "sent-mail" to match the UNIX
  3211.    syntax.
  3212.    
  3213.    The configuration variable fcc-name-rule also plays a role in
  3214.    selecting the folder to save sent mail in. See the documentation on it
  3215.    in the section on configuration variables.
  3216.    
  3217.    The danger here is that the sent mail could grow without bound. For
  3218.    this reason, we thought it useful to encourage the users to
  3219.    periodically prune their sent mail folder. The first time Pine is used
  3220.    each month it will offer to archive all messages sent from the month
  3221.    before. Pine also offers to delete all the sent mail archive folders
  3222.    which are more than 1 month old. If the user or system has disabled
  3223.    sent mail archiving (by setting the configuration variable
  3224.    default-fcc="") or if the fcc folder is a remote/IMAP folder then
  3225.    there will be no pruning question.
  3226.    
  3227.    It is likely that Pine will be improved so that users can set the time
  3228.    increment for pruning (weekly, monthly, yearly, never) but that has
  3229.    not been implemented yet.
  3230.    
  3231.      _________________________________________________________________
  3232.                                       
  3233. Spell Checker
  3234.  
  3235.    Spell checking is available for UNIX Pine only. We could not find an
  3236.    appropriate PC based spell checker to hook into PC-Pine. Even UNIX
  3237.    Pine depends on the system for its spell checking and dictionary.
  3238.    Pico, the text editor, uses the same spell checking scheme as Pine.
  3239.    
  3240.    Lines beginning with ">" (usually messages included in replies) are
  3241.    not checked. The message text to be checked is on the standard input
  3242.    and the incorrect words are expected on the standard output.
  3243.    
  3244.    The default spell checker is UNIX spell. You can replace this at
  3245.    compile time for the whole system. Pine also respects the environment
  3246.    variable SPELL. Beginning in Pine 3.92, there is also a "speller"
  3247.    configuration entry in the Setup/Config screen and configuration
  3248.    files. If it is set, Pine will use that as the spelling checker. The
  3249.    spelling checker reads its words from a standard dictionary on the
  3250.    system. Below is a description, contributed by Bob Hurt, of how you
  3251.    can create your own personal dictionary with additional ``correct''
  3252.    words.
  3253.    
  3254.    Step 1:
  3255.           Make a file with all the words you want to include in your new
  3256.           dictionary. I did mine with one word per line in alphabetical
  3257.           order. Caps don't matter at all, as far as I know.
  3258.    Step 2:
  3259.           At the UNIX prompt, type "cat [word file] | spellin
  3260.           /usr/dict/hlista > [new dict name]" where [word file] is the
  3261.           file you just created and [new dict name] is the name of the
  3262.           new dictionary that Pine will look at instead of the standard
  3263.           /usr/dict/hlista. I named my word file .bobwords and my
  3264.           dictionary .bobspell so I don't have to see them when I do a ls
  3265.           command (ls doesn't list "dot" files). I also put the above
  3266.           command into my .alias file as the command makedict so I can
  3267.           add a word to my word file and easily recreate my dictionary.
  3268.           NOTE: the new dictionary is in something called a "hashed"
  3269.           format, and can't be read normally.
  3270.    Step 3:
  3271.           Check your new dictionary. At the UNIX prompt, type "cat [word
  3272.           file] | spellout [new dict name]" If you did everything
  3273.           correctly, it should just give you another prompt. If it lists
  3274.           any of the words in your file, something is wrong. I can try to
  3275.           help if all else fails.
  3276.    Step 4:
  3277.           Now you have to tell UNIX to use your dictionary instead of the
  3278.           standard one by setting the environment variable SPELL to
  3279.           access your dictionary. Go into your .login or .cshrc file in
  3280.           your home directory (it doesn't seem to make a difference which
  3281.           one you use) and add the line
  3282.           
  3283.      setenv SPELL "spell -d [new dict name]"
  3284.    
  3285.           I also created an alias for SPELL in my .alias file so I can
  3286.           use the UNIX spell command to spell-check a file outside of
  3287.           Pine. (The .alias line is: alias spell 'spell -d [new dict
  3288.           name]')
  3289.    Step 5:
  3290.           Now you need to logoff and log back on to let UNIX look at your
  3291.           .login (or .cshrc) file.
  3292.           
  3293.    Here is an alternative method suggested by Zachary Leber:
  3294.    
  3295.    
  3296.           Create a list (e.g. .zachwords) with the upper case followed by
  3297.           lower case words, sorted alphabetically.
  3298.    
  3299.           Add this line to .cshrc:
  3300.           
  3301.      setenv SPELL 'spell +/home/ie/rsa/.zachwords'
  3302.    
  3303.           The limitation here is that the path must be absolute (e.g.
  3304.           +~/.zachwords doesn't work).
  3305.    
  3306.           My man pages for spell show this + flag to be an easy way to do
  3307.           the exception list. This way you don't have to bother with hash
  3308.           lists or rehashing, and it seems to work across several
  3309.           platforms.
  3310.           
  3311.        ______________________________________________________________
  3312.                                       
  3313. Terminal Emulation and Key Mapping
  3314.  
  3315.      Pine has been designed to require as little as possible from the
  3316.      terminal. At the minimum, Pine requires cursor positioning, clear
  3317.      to end of line, and inverse video. Unfortunately, there are
  3318.      terminals that are missing some of these such as a vt52. Pine makes
  3319.      no assumptions as to whether the terminal wraps or doesn't wrap. If
  3320.      the terminal has other capabilities it may use some of them. Pine
  3321.      won't run well on older terminals that require a space on the
  3322.      screen to change video attributes, such as the Televideo 925. One
  3323.      can get around this on some terminals by using "protected field"
  3324.      mode. The terminal can be made to go into protected mode for
  3325.      reverse video, and then reverse video is assigned to protected
  3326.      mode.
  3327.      
  3328.      Pine handles screens of most any size and resizing on the fly. It
  3329.      catches SIGWINCH and does the appropriate thing. A screen one line
  3330.      high will display only the new mail notification. Screens that are
  3331.      less than ten columns wide don't format very nicely or work well,
  3332.      but will function fine again once resized to something large. Pine
  3333.      sets an internal maximum screen size (currently 170x200) and
  3334.      decides to use either termcap or terminfo when it is compiled.
  3335.      
  3336.      On the input side of things, Pine uses all the standard keys, most
  3337.      of the control keys and (in function-key mode) the function keys.
  3338.      Pine avoids certain control keys, specifically ^S, ^Q, ^H, and ^\
  3339.      because they have other meanings outside of Pine (they control data
  3340.      flow, etc.) ^H is treated the same as the delete key, so the
  3341.      backspace or delete keys always works regardless of any
  3342.      configuration. In an upcoming version, there will be an option to
  3343.      have the delete key behave like ^D rather than ^H.
  3344.      
  3345.      Sometimes a communications program or communications server in
  3346.      between you and the other end will eat certain control characters.
  3347.      There is a work-around when you need it. If you type two escape
  3348.      characters followed by a character that will be interpreted as the
  3349.      character with the control key depressed. For example, ESC ESC T is
  3350.      equivalent to ^T.
  3351.      
  3352.      When a function key is pressed and Pine is in regular (non-function
  3353.      key) mode, Pine traps escape sequences for a number of common
  3354.      function keys so users don't get an error message or have an
  3355.      unexpected command executed for each character in the function
  3356.      key's escape sequence. Pine expects the following escape sequences
  3357.      from terminals defined as VT100:
  3358.      
  3359.      ANSI/VT100
  3360.      F1: <ESC>OP
  3361.      F2: <ESC>OQ
  3362.      F3: <ESC>OR
  3363.      F4: <ESC>OS
  3364.      F5: <ESC>Op
  3365.      F6: <ESC>Oq
  3366.      F7: <ESC>Or
  3367.      F8: <ESC>Os
  3368.      F9: <ESC>Ot
  3369.      F10: <ESC>Ou
  3370.      F11: <ESC>Ov
  3371.      
  3372.      Arrow keys are a special case. Pine has the escape sequences for a
  3373.      number of conventions for arrow keys hard coded and does not use
  3374.      termcap to discover them. This is because termcap is sometimes
  3375.      incorrect, and because many users have PC's running terminal
  3376.      emulators that don't conform exactly to what they claim to emulate.
  3377.      Some arrow keys on old terminals send single control characters
  3378.      like ^K (one even sends ^\). These arrow keys will not work with
  3379.      Pine. The most popular escape sequences for arrow keys are:
  3380.      
  3381.      Up: <ESC>[A <ESC>?x <ESC>A <ESC>OA
  3382.      Down: <ESC>[B <ESC>?r <ESC>B <ESC>OB
  3383.      Right: <ESC>[C <ESC>?v <ESC>C <ESC>OC
  3384.      Left: <ESC>[D <ESC>?t <ESC>D <ESC>OD
  3385.      
  3386.      It is possible to configure an NCD X-terminal so that some of the
  3387.      special keys operate. Brad Greer contributes these instructions:
  3388.      
  3389.    1.
  3390.           In your .Xdefaults file, include the following "translations",
  3391.           using lower hex values:
  3392.           
  3393.      Pine*VT100.Translations: #override \n\
  3394.      <Key>Delete: string(0x04) \n\
  3395.      <Key>End: string(0x05) \n\
  3396.      <Key>Escape: string(0x03) \n\
  3397.      <Key>Home: string(0x01) \n\
  3398.      <Key>Next: string(0x16) \n\
  3399.      <Key>Prior: string(0x19) \n\
  3400.      <Key>KP_Enter: string(0x18) \n\
  3401.    2.
  3402.           Start up Pine from an xterm, and specify a "resource name".
  3403.           This resource name will allow the user to specify resources for
  3404.           Pine (that deviate from the defaults). For example, xterm -name
  3405.           Pine -e pine & (the resource name Pine corresponds to the
  3406.           translations just added in the .Xdefaults file).
  3407.  
  3408.                       Notes for Porting and Modification
  3409.                                        
  3410. Porting Pine to Other Platforms
  3411.  
  3412.    Substantial effort has gone into making Pine/Pico portable. There are
  3413.    still, of course, a number of machine dependencies. Some of the ports
  3414.    are well-tested and some are untested. In particular, the most heavily
  3415.    used ports are the Ultrix, NeXT, DOS, and PTX ports.
  3416.    
  3417.    Each platform is given a three letter name (see the file
  3418.    doc/pine-ports). Make up a new one for your new port. We've attempted
  3419.    to bring all potential platform dependencies into three files:
  3420.    os-xxx.h, os-xxx.c, and makefile.xxx where xxx is the three letter
  3421.    name of the port. Thus any new port will hopefully just result in new
  3422.    versions of these files and some notes for the pine-ports file. There
  3423.    are actually nine new files needed, because there is a set of these
  3424.    files in the c-client, Pico, and Pine source directories. (As you can
  3425.    tell by reading this technical note, Pine originated on Unix systems.
  3426.    There are still probably many Unix dependencies built in, but these
  3427.    should be diminishing now that there are DOS, Windows, and VMS ports.
  3428.    Regrettably, the source code is full of instances of "ifdef DOS". Most
  3429.    of these are due to memory limit problems on DOS as opposed to actual
  3430.    system dependencies.
  3431.    
  3432.    The makefiles are kept as simple and straight-forward as possible,
  3433.    because many previous attempts at automatically figuring out what to
  3434.    do seem to have become complex and ineffective in what they set out to
  3435.    do: which is to make compiling and installing the program easy. Each
  3436.    port is for a specific hardware/software platform, also because past
  3437.    attempts to generalize on versions of Unix or some CPU architecture
  3438.    don't seem to have gained much. Thus, there is a separate makefile for
  3439.    each platform that calls the appropriate compiler and linker with the
  3440.    appropriate flags. Most of these makefiles are pretty similar. The
  3441.    makefile also specifies which of the os-xxx.c and os-xxx.h files to
  3442.    use. It is the root from which all platform dependencies are selected.
  3443.    In most cases the makefile also defines a symbol named after the
  3444.    platform on which there can be dependencies in the source code, though
  3445.    we've tried to minimize relying on this where reasonable. Pine, Pico,
  3446.    and the C-client don't quite do everything the same (there are at
  3447.    least three separate authors involved). Basically, to build the source
  3448.    in one of the directories, run make -f makefile.xxx where xxx is the
  3449.    three-letter name of the platform. That's all the build script does.
  3450.    When starting a new port in the pine directory, there is a generic
  3451.    makefile called makefile.gen which should be a good starting point.
  3452.    
  3453.    The file os-xxx.h is used for general platform dependent #include's
  3454.    and #defines. In the pine directory these .h files are located in the
  3455.    osdep subdirectory. All the include files that have been found to vary
  3456.    from one platform to another are also included here. In the case of
  3457.    Pico, there is only one os-xxx.h file called os-unx.h for most of the
  3458.    supported Unix ports and inside it are #ifdefs based on the platform
  3459.    specific symbol defined in the makefile. On the other hand, Pine now
  3460.    has a separate os-xxx.h file for each platform. There are a number of
  3461.    Pine configuration settings that are defined here, as well, such as
  3462.    the place it looks for certain files, defaults for the printer and
  3463.    folder names, the maximum screen size, and so on. For the Pine portion
  3464.    of the port, start by looking at the generic os-gen.h file and
  3465.    comparing it to some of the specific os-xxx.h files in osdep.
  3466.    
  3467.    The os-xxx.c file contains functions that are potentially platform
  3468.    dependent. Again, the idea is to gather all the dependencies in one
  3469.    place. Pico uses the same strategy here as it uses with os-unx.h. That
  3470.    is, there is a single os-unx.c file for most of the Unix ports. Pine
  3471.    uses a complicated looking method to produce the os-xxx.c file from a
  3472.    set of included files. Each included file usually contains a single
  3473.    function and we've found that there are usually only a couple
  3474.    different implementations of each function in the ports we've done so
  3475.    far. Hopefully, coming up with an os-xxx.c for a new port will usually
  3476.    be a matter of including the right set of these already written
  3477.    functions. This is done by writing a new os-xxx.ic file in the osdep
  3478.    subdirectory. Start with the generic os-gen.ic, as you did with the
  3479.    os-gen.h file above.
  3480.    
  3481.    We strongly encourage that no changes be made to the general source
  3482.    when porting and that all changes be contained in the three/nine
  3483.    system dependent files if possible. The object is to maintain source
  3484.    code integrity and assimilate ports to new platforms rapidly. The more
  3485.    conventional way to do this is with a large collection of #ifdefs. The
  3486.    problem with this is that adding a port for a new platform implies
  3487.    changing the source code for all the other platforms and thereby risks
  3488.    breaking them. (We readily admit that there are still too many ifdefs
  3489.    in the code, but we haven't had time to devote to fully cleaning that
  3490.    up.)
  3491.    
  3492.    If you do port Pine to a new platform we hope that you will send us
  3493.    the changes required so that we may attempt to include it in a later
  3494.    release. Thanks!
  3495.    
  3496.      _________________________________________________________________
  3497.                                       
  3498. Test Checklist
  3499.  
  3500.    The following is a checklist of some things to check when testing a
  3501.    new port:
  3502.    
  3503.    ___
  3504.           Sending mail, check that headers are correct
  3505.    ___
  3506.           Sending mail with attachments
  3507.    ___
  3508.           Sending mail with SMTP server
  3509.    ___
  3510.           Sending mail without SMTP server
  3511.    ___
  3512.           Sending mail with list of two SMTP servers, first one doesn't
  3513.           answer
  3514.    ___
  3515.           Replying to and forwarding a message
  3516.    ___
  3517.           Postponing messages under composition
  3518.    ___
  3519.           Composer operations
  3520.    ___
  3521.           Alternate editor, enable-alternate-editor-implicitly
  3522.    ___
  3523.           Make sure local user names are expanded
  3524.    ___
  3525.           Test spelling checker
  3526.    ___
  3527.           Catching of SIGHUP while message is being composed
  3528.    ___
  3529.           Setting of variables in .pinerc
  3530.    ___
  3531.           New mail notification. Should happen with Pine idle to check
  3532.           timeouts
  3533.    ___
  3534.           Reading mail (attachments, MIME, MIME with mailcap viewers)
  3535.    ___
  3536.           Deleting, undeleting, expunging, sorting
  3537.    ___
  3538.           Expunge to empty folder
  3539.    ___
  3540.           Make sure that ~ expansion works in config files
  3541.    ___
  3542.           Make sure that $VAR expansion works in config files
  3543.    ___
  3544.           Save message to folder, check error conditions such as
  3545.           permission denied
  3546.    ___
  3547.           Export message with FullHeaderMode on and off
  3548.    ___
  3549.           Checkpointing (see the section on checkpointing)
  3550.    ___
  3551.           Open IMAP and RIMAP folders
  3552.    ___
  3553.           Default-fcc on remote IMAP server
  3554.    ___
  3555.           Fcc-name-rule, fcc in addrbook (while composing)
  3556.    ___
  3557.           Test opening bogus folders: invalid format, no permission
  3558.    ___
  3559.           Open a USENET news group, list in folder-lister, read news,
  3560.           post news
  3561.    ___
  3562.           Command line arguments
  3563.    ___
  3564.           Change password
  3565.    ___
  3566.           Lock keyboard
  3567.    ___
  3568.           Address book operations (edit, delete, add, lists, whereis,
  3569.           composeto)
  3570.    ___
  3571.           ReadOnly address book
  3572.    ___
  3573.           Look at addrbook, change addrbook-sort-rule in Config, go back
  3574.           to addrbook screen
  3575.    ___
  3576.           No permission to write in same directory as addrbook, should
  3577.           create addrbook.lu in a temp directory
  3578.    ___
  3579.           Multiple address books
  3580.    ___
  3581.           Address book loops from one addrbook to another and back
  3582.    ___
  3583.           TakeAddr command with one address, with multiple addresses
  3584.    ___
  3585.           TakeAddr command with ReadOnly address books
  3586.    ___
  3587.           TakeAddr command with one of two address books ReadOnly
  3588.    ___
  3589.           Send mail with empty address book
  3590.    ___
  3591.           Config Screen operation, does pinerc get written?
  3592.    ___
  3593.           Make sure SIGTSTP, ^Z works
  3594.    ___
  3595.           Pinef
  3596.    ___
  3597.           Sent-mail pruning (set back last-time-prune-questioned
  3598.           variable)
  3599.    ___
  3600.           Printing using all three printer configurations, various
  3601.           screens
  3602.    ___
  3603.           View help text and news
  3604.    ___
  3605.           Folder list operations (rename, create, delete...)
  3606.    ___
  3607.           Saved-msg-name-rule
  3608.    ___
  3609.           Screen redrawing in various screens (^L)
  3610.    ___
  3611.           Window resizing in various screens
  3612.    ___
  3613.           Error messages for incorrect terminal types (try "foo" and
  3614.           "vt52")
  3615.    ___
  3616.           Reading of /usr/local/lib/pine.conf
  3617.    ___
  3618.           Fixing variables and features in /usr/local/lib/pine.conf.fixed
  3619.    ___
  3620.           Flag command (check message status changed in mail folder)
  3621.    ___
  3622.           Initial-keystroke-list
  3623.    ___
  3624.           Aggregate operations (save, delete, export, takeaddr, ...)
  3625.    ___
  3626.           Build xxx from scratch, build clean
  3627.           
  3628.      _________________________________________________________________
  3629.                                       
  3630.     
  3631.